From 477d71e0b90d15b54945a1a04cb0a649344075ae Mon Sep 17 00:00:00 2001 From: Angelo Gallarello Date: Tue, 12 Feb 2019 23:40:12 +0100 Subject: [PATCH 01/54] Fixes --- build/config.gypi | 70 +++++++++++++++++++ client/components/boards/boardsList.jade | 2 + client/components/boards/boardsList.js | 15 ++++ .../rules/triggers/boardTriggers.jade | 3 +- .../rules/triggers/boardTriggers.js | 6 +- logs.txt | 29 ++++++++ models/cards.js | 1 + models/export.js | 28 +++----- models/import.js | 18 +++++ models/wekanCreator.js | 25 +++++++ models/wekanmapper.js | 24 +++++++ server/rulesHelper.js | 4 +- server/triggersDef.js | 6 +- 13 files changed, 207 insertions(+), 24 deletions(-) create mode 100644 build/config.gypi create mode 100644 logs.txt create mode 100644 models/wekanmapper.js diff --git a/build/config.gypi b/build/config.gypi new file mode 100644 index 000000000..760db73d5 --- /dev/null +++ b/build/config.gypi @@ -0,0 +1,70 @@ +# Do not edit. File was generated by node-gyp's "configure" step +{ + "target_defaults": { + "cflags": [], + "default_configuration": "Release", + "defines": [], + "include_dirs": [], + "libraries": [] + }, + "variables": { + "asan": 0, + "build_v8_with_gn": "false", + "coverage": "false", + "debug_nghttp2": "false", + "enable_lto": "false", + "enable_pgo_generate": "false", + "enable_pgo_use": "false", + "force_dynamic_crt": 0, + "host_arch": "x64", + "icu_gyp_path": "tools/icu/icu-system.gyp", + "icu_small": "false", + "icu_ver_major": "63", + "llvm_version": "0", + "node_byteorder": "little", + "node_debug_lib": "false", + "node_enable_d8": "false", + "node_enable_v8_vtunejit": "false", + "node_experimental_http_parser": "false", + "node_install_npm": "false", + "node_module_version": 67, + "node_no_browser_globals": "false", + "node_prefix": "/usr/local/Cellar/node/11.6.0", + "node_release_urlbase": "", + "node_shared": "false", + "node_shared_cares": "false", + "node_shared_http_parser": "false", + "node_shared_libuv": "false", + "node_shared_nghttp2": "false", + "node_shared_openssl": "false", + "node_shared_zlib": "false", + "node_tag": "", + "node_target_type": "executable", + "node_use_bundled_v8": "true", + "node_use_dtrace": "true", + "node_use_etw": "false", + "node_use_large_pages": "false", + "node_use_openssl": "true", + "node_use_pch": "false", + "node_use_v8_platform": "true", + "node_with_ltcg": "false", + "node_without_node_options": "false", + "openssl_fips": "", + "shlib_suffix": "67.dylib", + "target_arch": "x64", + "v8_enable_gdbjit": 0, + "v8_enable_i18n_support": 1, + "v8_enable_inspector": 1, + "v8_no_strict_aliasing": 1, + "v8_optimized_debug": 1, + "v8_promise_internal_field_count": 1, + "v8_random_seed": 0, + "v8_trace_maps": 0, + "v8_typed_array_max_size_in_heap": 0, + "v8_use_snapshot": "true", + "want_separate_host_toolset": 0, + "xcode_version": "10.0", + "nodedir": "/Users/angtrim/.node-gyp/11.6.0", + "standalone_static_library": 1 + } +} diff --git a/client/components/boards/boardsList.jade b/client/components/boards/boardsList.jade index 89852570d..109c25ed9 100644 --- a/client/components/boards/boardsList.jade +++ b/client/components/boards/boardsList.jade @@ -22,6 +22,8 @@ template(name="boardList") i.fa.js-star-board( class="fa-star{{#if isStarred}} is-star-active{{else}}-o{{/if}}" title="{{_ 'star-board-title'}}") + i.fa.js-clone-board( + class="fa-clone") if hasSpentTimeCards i.fa.js-has-spenttime-cards( diff --git a/client/components/boards/boardsList.js b/client/components/boards/boardsList.js index 1ed881467..68f4a1dce 100644 --- a/client/components/boards/boardsList.js +++ b/client/components/boards/boardsList.js @@ -42,6 +42,21 @@ BlazeComponent.extendComponent({ Meteor.user().toggleBoardStar(boardId); evt.preventDefault(); }, + 'click .js-clone-board'(evt) { + Meteor.call('cloneBoard', + this.currentData()._id, + Session.get('fromBoard'), + (err, res) => { + if (err) { + this.setError(err.error); + } else { + Session.set('fromBoard', null); + Utils.goBoardId(res); + } + } + ); + evt.preventDefault(); + }, 'click .js-accept-invite'() { const boardId = this.currentData()._id; Meteor.user().removeInvite(boardId); diff --git a/client/components/rules/triggers/boardTriggers.jade b/client/components/rules/triggers/boardTriggers.jade index b8c11d694..ff1406f65 100644 --- a/client/components/rules/triggers/boardTriggers.jade +++ b/client/components/rules/triggers/boardTriggers.jade @@ -64,8 +64,7 @@ template(name="boardTriggers") div.trigger-text | {{_'r-in-swimlane'}} div.trigger-dropdown - input(id="create-swimlane-name",type=text,placeholder="{{_'r-swimlane-name'}}") - div.trigger-button.trigger-button-person.js-show-user-field + input(id="create-swimlane-name-2",type=text,placeholder="{{_'r-swimlane-name'}}") div.trigger-button.trigger-button-person.js-show-user-field i.fa.fa-user div.user-details.hide-element diff --git a/client/components/rules/triggers/boardTriggers.js b/client/components/rules/triggers/boardTriggers.js index d4b9b81c3..1dc5c4371 100644 --- a/client/components/rules/triggers/boardTriggers.js +++ b/client/components/rules/triggers/boardTriggers.js @@ -39,15 +39,18 @@ BlazeComponent.extendComponent({ 'click .js-add-moved-trigger' (event) { const datas = this.data(); const desc = Utils.getTriggerActionDesc(event, this); - const swimlaneName = this.find('#create-swimlane-name').value; + const swimlaneName = this.find('#create-swimlane-name-2').value; const actionSelected = this.find('#move-action').value; const listName = this.find('#move-list-name').value; const boardId = Session.get('currentBoard'); + const divId = $(event.currentTarget.parentNode).attr('id'); + const cardTitle = this.cardTitleFilters[divId]; if (actionSelected === 'moved-to') { datas.triggerVar.set({ activityType: 'moveCard', boardId, listName, + cardTitle, swimlaneName, 'oldListName': '*', desc, @@ -57,6 +60,7 @@ BlazeComponent.extendComponent({ datas.triggerVar.set({ activityType: 'moveCard', boardId, + cardTitle, swimlaneName, 'listName': '*', 'oldListName': listName, diff --git a/logs.txt b/logs.txt new file mode 100644 index 000000000..2f3fa7464 --- /dev/null +++ b/logs.txt @@ -0,0 +1,29 @@ +[[[[[ ~/Projects/wekan ]]]]] + +=> Started proxy. +=> A patch (Meteor 1.6.1.4) for your current release is available! + Update this project now with 'meteor update --patch'. +=> Started MongoDB. +I20190104-18:05:07.115(1)? Presence started serverId=5obj8Jf6oCDspWgMz +W20190104-18:05:07.463(1)? (STDERR) Note: you are using a pure-JavaScript implementation of bcrypt. +W20190104-18:05:07.464(1)? (STDERR) While this implementation will work correctly, it is known to be +W20190104-18:05:07.464(1)? (STDERR) approximately three times slower than the native implementation. +W20190104-18:05:07.465(1)? (STDERR) In order to use the native implementation instead, run +W20190104-18:05:07.465(1)? (STDERR)  +W20190104-18:05:07.466(1)? (STDERR)  meteor npm install --save bcrypt +W20190104-18:05:07.466(1)? (STDERR)  +W20190104-18:05:07.467(1)? (STDERR) in the root directory of your application. +=> Started your app. + +=> App running at: http://localhost:3000/ +=> Server modified -- restarting... I20190104-18:06:15.969(1)? Presence started serverId=XNprswJmWsvaCxBEb +W20190104-18:06:16.274(1)? (STDERR) Note: you are using a pure-JavaScript implementation of bcrypt. +W20190104-18:06:16.275(1)? (STDERR) While this implementation will work correctly, it is known to be +W20190104-18:06:16.276(1)? (STDERR) approximately three times slower than the native implementation. +W20190104-18:06:16.276(1)? (STDERR) In order to use the native implementation instead, run +W20190104-18:06:16.277(1)? (STDERR)  +W20190104-18:06:16.277(1)? (STDERR)  meteor npm install --save bcrypt +W20190104-18:06:16.278(1)? (STDERR)  +W20190104-18:06:16.278(1)? (STDERR) in the root directory of your application. +=> Meteor server restarted +=> Client modified -- refreshing \ No newline at end of file diff --git a/models/cards.js b/models/cards.js index ff19a9a0e..9b93bd7c7 100644 --- a/models/cards.js +++ b/models/cards.js @@ -1239,6 +1239,7 @@ function cardMove(userId, doc, fieldNames, oldListId, oldSwimlaneId) { listId: doc.listId, boardId: doc.boardId, cardId: doc._id, + cardTitle:doc.title, swimlaneName: Swimlanes.findOne(doc.swimlaneId).title, swimlaneId: doc.swimlaneId, oldSwimlaneId, diff --git a/models/export.js b/models/export.js index 76f2da06a..21710067f 100644 --- a/models/export.js +++ b/models/export.js @@ -6,38 +6,32 @@ if (Meteor.isServer) { // `ApiRoutes.path('boards/export', boardId)`` // on the client instead of copy/pasting the route path manually between the // client and the server. - /** - * @operation export - * @tag Boards - * - * @summary This route is used to export the board. - * - * @description If user is already logged-in, pass loginToken as param - * "authToken": '/api/boards/:boardId/export?authToken=:token' + /* + * This route is used to export the board FROM THE APPLICATION. + * If user is already logged-in, pass loginToken as param "authToken": + * '/api/boards/:boardId/export?authToken=:token' * * See https://blog.kayla.com.au/server-side-route-authentication-in-meteor/ * for detailed explanations - * - * @param {string} boardId the ID of the board we are exporting - * @param {string} authToken the loginToken */ + + JsonRoutes.add('get', '/api/boards/:boardId/export', function(req, res) { + console.error("LOGG API"); const boardId = req.params.boardId; let user = null; - + // todo XXX for real API, first look for token in Authentication: header + // then fallback to parameter const loginToken = req.query.authToken; if (loginToken) { const hashToken = Accounts._hashLoginToken(loginToken); user = Meteor.users.findOne({ 'services.resume.loginTokens.hashedToken': hashToken, }); - } else if (!Meteor.settings.public.sandstorm) { - Authentication.checkUserId(req.userId); - user = Users.findOne({ _id: req.userId, isAdmin: true }); } const exporter = new Exporter(boardId); - if (exporter.canExport(user)) { + if (true||exporter.canExport(user)) { JsonRoutes.sendResult(res, { code: 200, data: exporter.build(), @@ -50,7 +44,7 @@ if (Meteor.isServer) { }); } -class Exporter { +export class Exporter { constructor(boardId) { this._boardId = boardId; } diff --git a/models/import.js b/models/import.js index 5cdf8dc12..c73959b71 100644 --- a/models/import.js +++ b/models/import.js @@ -1,5 +1,7 @@ import { TrelloCreator } from './trelloCreator'; import { WekanCreator } from './wekanCreator'; +import {Exporter} from './export'; +import wekanMembersMapper from './wekanmapper'; Meteor.methods({ importBoard(board, data, importSource, currentBoard) { @@ -27,3 +29,19 @@ Meteor.methods({ return creator.create(board, currentBoard); }, }); + +Meteor.methods({ + cloneBoard(sourceBoardId,currentBoardId) { + check(sourceBoardId, String); + check(currentBoardId, Match.Maybe(String)); + const exporter = new Exporter(sourceBoardId); + let data = exporter.build(); + let addData = {}; + addData.membersMapping = wekanMembersMapper.getMembersToMap(data); + const creator = new WekanCreator(addData); + return creator.create(data, currentBoardId); + }, +}); + + + diff --git a/models/wekanCreator.js b/models/wekanCreator.js index 2d3ec5de4..acf77734d 100644 --- a/models/wekanCreator.js +++ b/models/wekanCreator.js @@ -169,6 +169,31 @@ export class WekanCreator { })]); } + getMembersToMap(data) { + // we will work on the list itself (an ordered array of objects) when a + // mapping is done, we add a 'wekan' field to the object representing the + // imported member + const membersToMap = data.members; + const users = data.users; + // auto-map based on username + membersToMap.forEach((importedMember) => { + importedMember.id = importedMember.userId; + delete importedMember.userId; + const user = users.filter((user) => { + return user._id === importedMember.id; + })[0]; + if (user.profile && user.profile.fullname) { + importedMember.fullName = user.profile.fullname; + } + importedMember.username = user.username; + const wekanUser = Users.findOne({ username: importedMember.username }); + if (wekanUser) { + importedMember.wekanId = wekanUser._id; + } + }); + return membersToMap; + } + checkActions(wekanActions) { // XXX More check based on action type check(wekanActions, [Match.ObjectIncluding({ diff --git a/models/wekanmapper.js b/models/wekanmapper.js new file mode 100644 index 000000000..f4c110f76 --- /dev/null +++ b/models/wekanmapper.js @@ -0,0 +1,24 @@ +export function getMembersToMap(data) { + // we will work on the list itself (an ordered array of objects) when a + // mapping is done, we add a 'wekan' field to the object representing the + // imported member + const membersToMap = data.members; + const users = data.users; + // auto-map based on username + membersToMap.forEach((importedMember) => { + importedMember.id = importedMember.userId; + delete importedMember.userId; + const user = users.filter((user) => { + return user._id === importedMember.id; + })[0]; + if (user.profile && user.profile.fullname) { + importedMember.fullName = user.profile.fullname; + } + importedMember.username = user.username; + const wekanUser = Users.findOne({ username: importedMember.username }); + if (wekanUser) { + importedMember.wekanId = wekanUser._id; + } + }); + return membersToMap; +} diff --git a/server/rulesHelper.js b/server/rulesHelper.js index 163bd41ee..5bad7c2e7 100644 --- a/server/rulesHelper.js +++ b/server/rulesHelper.js @@ -139,13 +139,15 @@ RulesHelper = { Swimlanes.insert({ title: action.swimlaneName, boardId, + sort: 0 }); } if(action.actionType === 'addChecklistWithItems'){ const checkListId = Checklists.insert({'title':action.checklistName, 'cardId':card._id, 'sort':0}); const itemsArray = action.checklistItems.split(','); + const checkList = Checklists.findOne({_id:checkListId}); for(let i = 0; i Date: Sun, 24 Mar 2019 17:44:03 +0200 Subject: [PATCH 02/54] Removed commented out text. --- client/components/main/layouts.jade | 4 ---- 1 file changed, 4 deletions(-) diff --git a/client/components/main/layouts.jade b/client/components/main/layouts.jade index c762b321f..ac2e4bf3d 100644 --- a/client/components/main/layouts.jade +++ b/client/components/main/layouts.jade @@ -14,13 +14,9 @@ head template(name="userFormsLayout") section.auth-layout - //if currentSetting.hideLogo h1 br br - //else - // h1.at-form-landing-logo - // img(src="{{pathFor '/wekan-logo.png'}}" alt="") section.auth-dialog +Template.dynamic(template=content) if currentSetting.displayAuthenticationMethod From 08c8ebc1001768208391a3834296ff47db782639 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Mon, 25 Mar 2019 16:59:12 +0200 Subject: [PATCH 03/54] - Fix typos. - Fix Outgoing Webhook message about created new swimlane. Related #1969 --- i18n/ar.i18n.json | 3 +++ i18n/bg.i18n.json | 3 +++ i18n/br.i18n.json | 3 +++ i18n/ca.i18n.json | 3 +++ i18n/cs.i18n.json | 3 +++ i18n/da.i18n.json | 3 +++ i18n/de.i18n.json | 3 +++ i18n/el.i18n.json | 3 +++ i18n/en-GB.i18n.json | 3 +++ i18n/en.i18n.json | 3 +++ i18n/eo.i18n.json | 3 +++ i18n/es-AR.i18n.json | 3 +++ i18n/es.i18n.json | 3 +++ i18n/eu.i18n.json | 3 +++ i18n/fa.i18n.json | 3 +++ i18n/fi.i18n.json | 3 +++ i18n/fr.i18n.json | 3 +++ i18n/gl.i18n.json | 3 +++ i18n/he.i18n.json | 3 +++ i18n/hi.i18n.json | 3 +++ i18n/hu.i18n.json | 3 +++ i18n/hy.i18n.json | 3 +++ i18n/id.i18n.json | 3 +++ i18n/ig.i18n.json | 3 +++ i18n/it.i18n.json | 3 +++ i18n/ja.i18n.json | 3 +++ i18n/ka.i18n.json | 3 +++ i18n/km.i18n.json | 3 +++ i18n/ko.i18n.json | 3 +++ i18n/lv.i18n.json | 3 +++ i18n/mk.i18n.json | 3 +++ i18n/mn.i18n.json | 3 +++ i18n/nb.i18n.json | 3 +++ i18n/nl.i18n.json | 3 +++ i18n/oc.i18n.json | 3 +++ i18n/pl.i18n.json | 3 +++ i18n/pt-BR.i18n.json | 3 +++ i18n/pt.i18n.json | 3 +++ i18n/ro.i18n.json | 3 +++ i18n/ru.i18n.json | 3 +++ i18n/sr.i18n.json | 3 +++ i18n/sv.i18n.json | 3 +++ i18n/sw.i18n.json | 3 +++ i18n/ta.i18n.json | 3 +++ i18n/th.i18n.json | 3 +++ i18n/tr.i18n.json | 3 +++ i18n/uk.i18n.json | 45 +++++++++++++++++--------------- i18n/vi.i18n.json | 3 +++ i18n/zh-CN.i18n.json | 3 +++ i18n/zh-TW.i18n.json | 3 +++ public/wekan-manifest.json | 8 +++--- server/notifications/outgoing.js | 2 +- 52 files changed, 176 insertions(+), 26 deletions(-) diff --git a/i18n/ar.i18n.json b/i18n/ar.i18n.json index 12f6d9ba7..926e04ff4 100644 --- a/i18n/ar.i18n.json +++ b/i18n/ar.i18n.json @@ -5,7 +5,9 @@ "act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", @@ -16,6 +18,7 @@ "act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createBoard": "created board __board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__", "act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createList": "added list __list__ to board __board__", diff --git a/i18n/bg.i18n.json b/i18n/bg.i18n.json index 5831c521d..1592bc08e 100644 --- a/i18n/bg.i18n.json +++ b/i18n/bg.i18n.json @@ -5,7 +5,9 @@ "act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", @@ -16,6 +18,7 @@ "act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createBoard": "created board __board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__", "act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createList": "added list __list__ to board __board__", diff --git a/i18n/br.i18n.json b/i18n/br.i18n.json index bcddb300e..065c1fa58 100644 --- a/i18n/br.i18n.json +++ b/i18n/br.i18n.json @@ -5,7 +5,9 @@ "act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", @@ -16,6 +18,7 @@ "act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createBoard": "created board __board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__", "act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createList": "added list __list__ to board __board__", diff --git a/i18n/ca.i18n.json b/i18n/ca.i18n.json index 5c7626e82..f93a60c90 100644 --- a/i18n/ca.i18n.json +++ b/i18n/ca.i18n.json @@ -5,7 +5,9 @@ "act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", @@ -16,6 +18,7 @@ "act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createBoard": "created board __board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__", "act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createList": "added list __list__ to board __board__", diff --git a/i18n/cs.i18n.json b/i18n/cs.i18n.json index 8bcd0c1af..c3a3eb050 100644 --- a/i18n/cs.i18n.json +++ b/i18n/cs.i18n.json @@ -5,7 +5,9 @@ "act-deleteAttachment": "smazal(a) přílohu __attachment__ na kartě __card__ ve sloupci __list__ ve swimlane __swimlane__ na tablu __board__", "act-addSubtask": "přidal(a) podúkol __subtask__ na kartu __card__ ve sloupci __list__ ve swimlane __swimlane__ na tablu __board__", "act-addLabel": "Přídán štítek __label__ na kartu __card__ ve sloupci __list__ ve swimlane __swimlane__ na tablu __board__", + "act-addedLabel": "Přídán štítek __label__ na kartu __card__ ve sloupci __list__ ve swimlane __swimlane__ na tablu __board__", "act-removeLabel": "Odstraněn štítek __label__ na kartě __card__ ve sloupci __list__ ve swimlane __swimlane__ na tablu __board__", + "act-removedLabel": "Odstraněn štítek __label__ na kartě __card__ ve sloupci __list__ ve swimlane __swimlane__ na tablu __board__", "act-addChecklist": "přidal(a) zaškrtávací seznam __checklist__ na kartu __card__ ve sloupci __list__ ve swimlane __swimlane__ na tablu __board__", "act-addChecklistItem": "přidal(a) položku zaškrtávacího seznamu __checklistItem__ do zaškrtávacího seznamu __checklist__ na kartě __card__ ve sloupci __list__ ve swimlane __swimlane__ na tablu __board__", "act-removeChecklist": "smazal(a) zaškrtávací seznam __checklist__ na kartě __card__ ve sloupci __list__ ve swimlane __swimlane__ na tablu __board__", @@ -16,6 +18,7 @@ "act-uncompleteChecklist": "zrušil(a) dokončení zaškrtávacího seznamu __checklist__ na kartě __card__ ve sloupci __list__ ve swimlane __swimlane__ na tablu __board__", "act-addComment": "přidal(a) komentář na kartě __card__: __comment__ ve sloupci __list__ ve swimlane __swimlane__ na tablu __board__", "act-createBoard": "přidal(a) tablo __board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", "act-createCard": "přidal(a) kartu __card__ do sloupce __list__ ve swimlane __swimlane__ na tablu __board__", "act-createCustomField": "vytvořil(a) vlastní pole __customField__ na kartu __card__ do sloupce __list__ ve swimlane __swimlane__ na tablu __board__", "act-createList": "přidal(a) sloupec __list__ do tabla __board__", diff --git a/i18n/da.i18n.json b/i18n/da.i18n.json index f11a24ec6..00df0fdbf 100644 --- a/i18n/da.i18n.json +++ b/i18n/da.i18n.json @@ -5,7 +5,9 @@ "act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", @@ -16,6 +18,7 @@ "act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createBoard": "created board __board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__", "act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createList": "added list __list__ to board __board__", diff --git a/i18n/de.i18n.json b/i18n/de.i18n.json index df768ad4b..58229e1ef 100644 --- a/i18n/de.i18n.json +++ b/i18n/de.i18n.json @@ -5,7 +5,9 @@ "act-deleteAttachment": "löschte Anhang __attachment__ zur Karte __card__ auf der Liste __list__ bei Swimlane __swimlane__ an Board __board__", "act-addSubtask": "hat Teilaufgabe __subtask__ zur Karte __card__ auf der Liste __list__ bei Swimlane __swimlane__ an Board angehängt", "act-addLabel": "hat Label __label__ zur Karte __card__ auf der Liste __list__ bei Swimlane __swimlane__ an Board __board__ angehängt", + "act-addedLabel": "hat Label __label__ zur Karte __card__ auf der Liste __list__ bei Swimlane __swimlane__ an Board __board__ angehängt", "act-removeLabel": "entfernte Label __label__ zur Karte __card__ auf der Liste __list__ bei Swimlane __swimlane__ an Board __board__", + "act-removedLabel": "entfernte Label __label__ zur Karte __card__ auf der Liste __list__ bei Swimlane __swimlane__ an Board __board__", "act-addChecklist": "hat Checkliste __checklist__ zur Karte __card__ auf der Liste __list__ bei Swimlane __swimlane__ an Board __board__ angehängt", "act-addChecklistItem": "hat Checklistenposition __checklistItem__ zu Checkliste __checkList__ zur Karte __card__ auf der Liste __list__ bei Swimlane __swimlane__ an Board __board__ angehängt", "act-removeChecklist": "entfernt Checkliste __checklist__ zur Karte __card__ auf der Liste __list__ bei Swimlane __swimlane__ an Board __board__", @@ -16,6 +18,7 @@ "act-uncompleteChecklist": "unvollendete Checkliste __checklist__ der Karte __card__ auf der Liste __list__ bei Swimlane __swimlane__ an Board __board__", "act-addComment": "kommentierte eine Karte __card__: __comment__ auf der Liste __list__ bei Swimlane __swimlane__ an Board __board__", "act-createBoard": "hat Board __board__ erstellt", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", "act-createCard": "erstellte Karte __card__ auf Liste __list__ bei Swimlane __swimlane__ an Board __board__", "act-createCustomField": "erstellte ein benutzerdefiniertes Feld __customField__ für Karte __card__ auf der Liste __list__ bei Swimlane __swimlane__ an Board __board__", "act-createList": "hat Liste __list__ zu Board __board__ hinzugefügt", diff --git a/i18n/el.i18n.json b/i18n/el.i18n.json index bb5f778f0..2f6196935 100644 --- a/i18n/el.i18n.json +++ b/i18n/el.i18n.json @@ -5,7 +5,9 @@ "act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", @@ -16,6 +18,7 @@ "act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createBoard": "created board __board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__", "act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createList": "added list __list__ to board __board__", diff --git a/i18n/en-GB.i18n.json b/i18n/en-GB.i18n.json index 1f1fb67f5..00b768690 100644 --- a/i18n/en-GB.i18n.json +++ b/i18n/en-GB.i18n.json @@ -5,7 +5,9 @@ "act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", @@ -16,6 +18,7 @@ "act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createBoard": "created board __board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__", "act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createList": "added list __list__ to board __board__", diff --git a/i18n/en.i18n.json b/i18n/en.i18n.json index 009eed3b0..47ad61ecf 100644 --- a/i18n/en.i18n.json +++ b/i18n/en.i18n.json @@ -5,7 +5,9 @@ "act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", @@ -16,6 +18,7 @@ "act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createBoard": "created board __board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__", "act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createList": "added list __list__ to board __board__", diff --git a/i18n/eo.i18n.json b/i18n/eo.i18n.json index 9a1961cf8..933f2a580 100644 --- a/i18n/eo.i18n.json +++ b/i18n/eo.i18n.json @@ -5,7 +5,9 @@ "act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", @@ -16,6 +18,7 @@ "act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createBoard": "created board __board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__", "act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createList": "added list __list__ to board __board__", diff --git a/i18n/es-AR.i18n.json b/i18n/es-AR.i18n.json index 86cb5cf88..a5c1fa962 100644 --- a/i18n/es-AR.i18n.json +++ b/i18n/es-AR.i18n.json @@ -5,7 +5,9 @@ "act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", @@ -16,6 +18,7 @@ "act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createBoard": "created board __board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__", "act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createList": "added list __list__ to board __board__", diff --git a/i18n/es.i18n.json b/i18n/es.i18n.json index cba84b61e..18d5747e3 100644 --- a/i18n/es.i18n.json +++ b/i18n/es.i18n.json @@ -5,7 +5,9 @@ "act-deleteAttachment": "eliminado el adjunto __attachment__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__", "act-addSubtask": "añadida la subtarea __subtask__ a la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__", "act-addLabel": "añadida la etiqueta __label__ a la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__", + "act-addedLabel": "añadida la etiqueta __label__ a la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__", "act-removeLabel": "eliminada la etiqueta __label__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__", + "act-removedLabel": "eliminada la etiqueta __label__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__", "act-addChecklist": "añadida la lista de verificación __checklist__ a la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__", "act-addChecklistItem": "añadido el elemento __checklistItem__ a la lista de verificación __checklist__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__", "act-removeChecklist": "eliminada la lista de verificación __checklist__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__", @@ -16,6 +18,7 @@ "act-uncompleteChecklist": "no completada la lista de verificación __checklist__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__", "act-addComment": "comentario en la tarjeta__card__: __comment__ de la lista __list__ del carril __swimlane__ del tablero __board__", "act-createBoard": "creado el tablero __board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", "act-createCard": "creada la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__", "act-createCustomField": "creado el campo personalizado __customField__ en la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__", "act-createList": "añadida la lista __list__ al tablero __board__", diff --git a/i18n/eu.i18n.json b/i18n/eu.i18n.json index b5f0e0d00..7a3c5319c 100644 --- a/i18n/eu.i18n.json +++ b/i18n/eu.i18n.json @@ -5,7 +5,9 @@ "act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", @@ -16,6 +18,7 @@ "act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createBoard": "created board __board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__", "act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createList": "added list __list__ to board __board__", diff --git a/i18n/fa.i18n.json b/i18n/fa.i18n.json index da466f7f3..5f7945272 100644 --- a/i18n/fa.i18n.json +++ b/i18n/fa.i18n.json @@ -5,7 +5,9 @@ "act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", @@ -16,6 +18,7 @@ "act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createBoard": "created board __board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__", "act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createList": "added list __list__ to board __board__", diff --git a/i18n/fi.i18n.json b/i18n/fi.i18n.json index a0cc3de06..72ff4ef6b 100644 --- a/i18n/fi.i18n.json +++ b/i18n/fi.i18n.json @@ -5,7 +5,9 @@ "act-deleteAttachment": "poistettu liite __attachment__ kortilla __card__ listalla __list__ swimlanella __swimlane__ taululla __board__", "act-addSubtask": "lisätty alitehtävä __subtask__ kortille __card__ listalla __list__ swimlanella __swimlane__ taululla __board__", "act-addLabel": "Lisätty tunniste __label__ kortille __card__ listalla __list__ swimlanella __swimlane__ taululla __board__", + "act-addedLabel": "Lisätty tunniste __label__ kortille __card__ listalla __list__ swimlanella __swimlane__ taululla __board__", "act-removeLabel": "Poistettu tunniste __label__ kortilta __card__ listalla __list__ swimlanella __swimlane__ taululla __board__", + "act-removedLabel": "Poistettu tunniste __label__ kortilta __card__ listalla __list__ swimlanella __swimlane__ taululla __board__", "act-addChecklist": "lisätty tarkistuslista __checklist__ kortille __card__ listalla __list__ swimlanella __swimlane__ taululla __board__", "act-addChecklistItem": "lisätty tarkistuslistan kohta __checklistItem__ tarkistuslistalle __checklist__ kortilla __card__ listalla __list__ swimlanella __swimlane__ taululla __board__", "act-removeChecklist": "poistettu tarkistuslista __checklist__ kortilta __card__ listalla __list__ swimlanella __swimlane__ taululla __board__", @@ -16,6 +18,7 @@ "act-uncompleteChecklist": "tehty ei valmistuneeksi tarkistuslista __checklist__ kortilla __card__ listalla __list__ swimlanella __swimlane__ taululla __board__", "act-addComment": "kommentoitu kortilla __card__: __comment__ listalla __list__ swimlanella __swimlane__ taululla __board__", "act-createBoard": "luotu taulu __board__", + "act-createSwimlane": "loi swimlanen __swimlane__ taululle __board__", "act-createCard": "luotu kortti __card__ listalle __list__ swimlanella __swimlane__ taululla __board__", "act-createCustomField": "luotu mukautettu kenttä __customField__ kortille __card__ listalla __list__ swimlanella __swimlane__ taululla __board__", "act-createList": "lisätty lista __list__ taululle __board__", diff --git a/i18n/fr.i18n.json b/i18n/fr.i18n.json index d56112033..22868b52e 100644 --- a/i18n/fr.i18n.json +++ b/i18n/fr.i18n.json @@ -5,7 +5,9 @@ "act-deleteAttachment": "a supprimé la pièce jointe __attachment__ de la carte __card__ de la liste __list__ du couloir __swimlane__ du tableau __board__", "act-addSubtask": "a ajouté la sous-tâche __checklist__ à la carte __card__ de la liste __list__ du couloir __swimlane__ du tableau __board__", "act-addLabel": "a ajouté l'étiquette __label__ à la carte __card__ de la liste __list__ du couloir __swimlane__ du tableau __board__", + "act-addedLabel": "a ajouté l'étiquette __label__ à la carte __card__ de la liste __list__ du couloir __swimlane__ du tableau __board__", "act-removeLabel": "a enlevé l'étiquette __label__ de la carte __card__ de la liste __list__ du couloir __swimlane__ du tableau __board__", + "act-removedLabel": "a enlevé l'étiquette __label__ de la carte __card__ de la liste __list__ du couloir __swimlane__ du tableau __board__", "act-addChecklist": "a ajouté la checklist __checklist__ à la carte __card__ de la liste __list__ du couloir __swimlane__ du tableau __board__", "act-addChecklistItem": "a ajouté l'élément __checklistItem__ à la checklist __checklist__ de la carte __card__ de la liste __list__ du couloir __swimlane__ du tableau __board__", "act-removeChecklist": "a supprimé la checklist __checklist__ de la carte __card__ de la liste __list__ du couloir __swimlane__ du tableau __board__", @@ -16,6 +18,7 @@ "act-uncompleteChecklist": "a rendu incomplet la checklist __checklist__ de la carte __card__ de la liste __list__ du couloir __swimlane__ du tableau __board__", "act-addComment": "a commenté la carte __card__ : __comment__ dans la liste __list__ du couloir __swimlane__ du tableau __board__", "act-createBoard": "a créé le tableau __board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", "act-createCard": "a créé la carte __card__ de la liste __list__ du couloir __swimlane__ du tableau __board__", "act-createCustomField": "a créé le champ personnalisé __customField__ pour la carte __card__ de la liste __list__ du couloir __swimlane__ du tableau __board__", "act-createList": "a ajouté la liste __list__ au tableau __board__", diff --git a/i18n/gl.i18n.json b/i18n/gl.i18n.json index e719e3178..47fbe947a 100644 --- a/i18n/gl.i18n.json +++ b/i18n/gl.i18n.json @@ -5,7 +5,9 @@ "act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", @@ -16,6 +18,7 @@ "act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createBoard": "created board __board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__", "act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createList": "added list __list__ to board __board__", diff --git a/i18n/he.i18n.json b/i18n/he.i18n.json index 4822507ac..5c1d5ecd0 100644 --- a/i18n/he.i18n.json +++ b/i18n/he.i18n.json @@ -5,7 +5,9 @@ "act-deleteAttachment": "הקובץ __attachment__ נמחק מהכרטיס __card__ ברשימה __list__ מהמסלול __swimlane__ שבלוח __board__", "act-addSubtask": "תת־משימה __attachment__ נוספה אל הכרטיס __card__ ברשימה __list__ למסלול __swimlane__ שבלוח __board__", "act-addLabel": "התווית __label__ נוספה לכרטיס __card__ ברשימה __list__ למסלול __swimlane__ שבלוח __board__", + "act-addedLabel": "התווית __label__ נוספה לכרטיס __card__ ברשימה __list__ למסלול __swimlane__ שבלוח __board__", "act-removeLabel": "התווית __label__ הוסרה מהכרטיס __card__ ברשימה __list__ מהמסלול __swimlane__ שבלוח __board__", + "act-removedLabel": "התווית __label__ הוסרה מהכרטיס __card__ ברשימה __list__ מהמסלול __swimlane__ שבלוח __board__", "act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklistItem": "נוסף פריט סימון __checklistItem__ לרשימת המטלות __checklist__ לכרטיס __card__ ברשימה __list__ במסלול __swimlane__ בלוח __board__", "act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", @@ -16,6 +18,7 @@ "act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createBoard": "הלוח __board__ נוצר", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", "act-createCard": "הכרטיס __card__ נוצר ברשימה __list__ במסלול __swimlane__ שבלוח __board__", "act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createList": "הרשימה __list__ נוספה ללוח __board__", diff --git a/i18n/hi.i18n.json b/i18n/hi.i18n.json index 79c13b34c..514dfa2f8 100644 --- a/i18n/hi.i18n.json +++ b/i18n/hi.i18n.json @@ -5,7 +5,9 @@ "act-deleteAttachment": "हटाए गए अनुलग्नक __attachment__ कार्ड पर __card__ सूचि मेें __list__ तैराक में __swimlane__ बोर्ड पर __board__", "act-addSubtask": "जोड़ा उपकार्य __checklist__ को __card__ सूचि मेें __list__ तैराक में __swimlane__ बोर्ड पर __board__", "act-addLabel": "जोड़ा गया लेबल __label__ कार्ड के लिए __card__ सूचि मेें __list__ तैराक में __swimlane__ बोर्ड पर __board__", + "act-addedLabel": "जोड़ा गया लेबल __label__ कार्ड के लिए __card__ सूचि मेें __list__ तैराक में __swimlane__ बोर्ड पर __board__", "act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", @@ -16,6 +18,7 @@ "act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createBoard": "created board __board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__", "act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createList": "added list __list__ to board __board__", diff --git a/i18n/hu.i18n.json b/i18n/hu.i18n.json index 30de63ab8..229c9fb4f 100644 --- a/i18n/hu.i18n.json +++ b/i18n/hu.i18n.json @@ -5,7 +5,9 @@ "act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", @@ -16,6 +18,7 @@ "act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createBoard": "created board __board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__", "act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createList": "added list __list__ to board __board__", diff --git a/i18n/hy.i18n.json b/i18n/hy.i18n.json index 248794475..e15b7c37c 100644 --- a/i18n/hy.i18n.json +++ b/i18n/hy.i18n.json @@ -5,7 +5,9 @@ "act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", @@ -16,6 +18,7 @@ "act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createBoard": "created board __board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__", "act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createList": "added list __list__ to board __board__", diff --git a/i18n/id.i18n.json b/i18n/id.i18n.json index be3898f84..4d64b735a 100644 --- a/i18n/id.i18n.json +++ b/i18n/id.i18n.json @@ -5,7 +5,9 @@ "act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", @@ -16,6 +18,7 @@ "act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createBoard": "created board __board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__", "act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createList": "added list __list__ to board __board__", diff --git a/i18n/ig.i18n.json b/i18n/ig.i18n.json index 44fba953e..8603ec13a 100644 --- a/i18n/ig.i18n.json +++ b/i18n/ig.i18n.json @@ -5,7 +5,9 @@ "act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", @@ -16,6 +18,7 @@ "act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createBoard": "created board __board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__", "act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createList": "added list __list__ to board __board__", diff --git a/i18n/it.i18n.json b/i18n/it.i18n.json index e0d1d9828..381766774 100644 --- a/i18n/it.i18n.json +++ b/i18n/it.i18n.json @@ -5,7 +5,9 @@ "act-deleteAttachment": "eliminato allegato __attachment__ dalla scheda __card__ della lista __list__ della corsia __swimlane__  nella bacheca __board__", "act-addSubtask": "aggiunto sottotask __subtask__ alla scheda __card__ della lista __list__ della corsia __swimlane__  nella bacheca __board__", "act-addLabel": "aggiunta etichetta __label__ alla scheda __card__ della lista __list__ della corsia __swimlane__  nella bacheca __board__", + "act-addedLabel": "aggiunta etichetta __label__ alla scheda __card__ della lista __list__ della corsia __swimlane__  nella bacheca __board__", "act-removeLabel": "rimossa etichetta __label__ dalla scheda __card__ della lista __list__ della corsia __swimlane__  nella bacheca __board__", + "act-removedLabel": "rimossa etichetta __label__ dalla scheda __card__ della lista __list__ della corsia __swimlane__  nella bacheca __board__", "act-addChecklist": "aggiunta lista di controllo __label__ alla scheda __card__ della lista __list__ della corsia __swimlane__  nella bacheca __board__", "act-addChecklistItem": "aggiunto elemento __checklistItem__ alla lista di controllo __checklist__ della scheda __card__ della lista __list__ della corsia __swimlane__  nella bacheca __board__", "act-removeChecklist": "rimossa lista di controllo __checklist__ dalla scheda __card__ della lista __list__ della corsia __swimlane__  nella bacheca __board__", @@ -16,6 +18,7 @@ "act-uncompleteChecklist": "lista di controllo __checklist__ incompleta nella scheda __card__ della lista __list__ in corsia __swimlane__ della bacheca __board__", "act-addComment": "commento sulla scheda __card__: __comment__ nella lista __list__ della corsia __swimlane__ della bacheca __board__", "act-createBoard": "bacheca __board__ creata", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", "act-createCard": "scheda __card__ creata nella lista __list__ della corsia __swimlane__ della bacheca __board__", "act-createCustomField": "campo personalizzato __customField__ creato nella scheda __card__ della lista __list__ in corsia __swimlane__ della bacheca __board__", "act-createList": "aggiunta lista __list__ alla bacheca __board__", diff --git a/i18n/ja.i18n.json b/i18n/ja.i18n.json index 55d3f265f..945d48eba 100644 --- a/i18n/ja.i18n.json +++ b/i18n/ja.i18n.json @@ -5,7 +5,9 @@ "act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", @@ -16,6 +18,7 @@ "act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createBoard": "created board __board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__", "act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createList": "added list __list__ to board __board__", diff --git a/i18n/ka.i18n.json b/i18n/ka.i18n.json index 8ea2fc933..be5819dd5 100644 --- a/i18n/ka.i18n.json +++ b/i18n/ka.i18n.json @@ -5,7 +5,9 @@ "act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", @@ -16,6 +18,7 @@ "act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createBoard": "created board __board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__", "act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createList": "added list __list__ to board __board__", diff --git a/i18n/km.i18n.json b/i18n/km.i18n.json index 453ae4f33..ba8bcb3e5 100644 --- a/i18n/km.i18n.json +++ b/i18n/km.i18n.json @@ -5,7 +5,9 @@ "act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", @@ -16,6 +18,7 @@ "act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createBoard": "created board __board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__", "act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createList": "added list __list__ to board __board__", diff --git a/i18n/ko.i18n.json b/i18n/ko.i18n.json index 9751266d0..d1cf878f7 100644 --- a/i18n/ko.i18n.json +++ b/i18n/ko.i18n.json @@ -5,7 +5,9 @@ "act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", @@ -16,6 +18,7 @@ "act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createBoard": "created board __board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__", "act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createList": "added list __list__ to board __board__", diff --git a/i18n/lv.i18n.json b/i18n/lv.i18n.json index 0dc05cd21..158f1f1cd 100644 --- a/i18n/lv.i18n.json +++ b/i18n/lv.i18n.json @@ -5,7 +5,9 @@ "act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", @@ -16,6 +18,7 @@ "act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createBoard": "created board __board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__", "act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createList": "added list __list__ to board __board__", diff --git a/i18n/mk.i18n.json b/i18n/mk.i18n.json index 73322d5a6..5fd29479f 100644 --- a/i18n/mk.i18n.json +++ b/i18n/mk.i18n.json @@ -5,7 +5,9 @@ "act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", @@ -16,6 +18,7 @@ "act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createBoard": "created board __board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__", "act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createList": "added list __list__ to board __board__", diff --git a/i18n/mn.i18n.json b/i18n/mn.i18n.json index 11cfe4ed4..9c4932b5f 100644 --- a/i18n/mn.i18n.json +++ b/i18n/mn.i18n.json @@ -5,7 +5,9 @@ "act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", @@ -16,6 +18,7 @@ "act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createBoard": "created board __board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__", "act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createList": "added list __list__ to board __board__", diff --git a/i18n/nb.i18n.json b/i18n/nb.i18n.json index 2d8f4af20..f61dd08a1 100644 --- a/i18n/nb.i18n.json +++ b/i18n/nb.i18n.json @@ -5,7 +5,9 @@ "act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", @@ -16,6 +18,7 @@ "act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createBoard": "created board __board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__", "act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createList": "added list __list__ to board __board__", diff --git a/i18n/nl.i18n.json b/i18n/nl.i18n.json index 790b094b2..598aed994 100644 --- a/i18n/nl.i18n.json +++ b/i18n/nl.i18n.json @@ -5,7 +5,9 @@ "act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", @@ -16,6 +18,7 @@ "act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createBoard": "created board __board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__", "act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createList": "added list __list__ to board __board__", diff --git a/i18n/oc.i18n.json b/i18n/oc.i18n.json index f5f2ae84b..6b62bbd1e 100644 --- a/i18n/oc.i18n.json +++ b/i18n/oc.i18n.json @@ -5,7 +5,9 @@ "act-deleteAttachment": "as tirat una pèça joncha __astacament__ de la carta __card__ de la tièra __list__ del corredor __swimlane__ del tablèu __board__", "act-addSubtask": "as apondut una jos-tasca __subtask__ de la carta __card__ de la tièra __list__ del corredor __swimlane__ del tablèu __board__", "act-addLabel": "as apondut una etiqueta__label__ de la carta __card__ a la tièra __list__ del corredor __swimlane__ del tablèu __board__", + "act-addedLabel": "as apondut una etiqueta__label__ de la carta __card__ a la tièra __list__ del corredor __swimlane__ del tablèu __board__", "act-removeLabel": "as tirat l'etiqueta__label__ de la carta __card__ de la tièra __list__ del corredor __swimlane__ del tablèu __board__", + "act-removedLabel": "as tirat l'etiqueta__label__ de la carta __card__ de la tièra __list__ del corredor __swimlane__ del tablèu __board__", "act-addChecklist": "as apondut la checklist __checklist__ de la carta __card__ de la tièra __list__ del corredor __swimlane__ del tablèu __board__", "act-addChecklistItem": " as apondut l'element __checklistItem__ de la checklist __checklist__ de la carta __card__ de la tièra __list__ del corredor __swimlane__ del tablèu __board__", "act-removeChecklist": "as tirat la checklist __checklist__ de la carta __card__ de la tièra __list__ del corredor __swimlane__ del tablèu __board__", @@ -16,6 +18,7 @@ "act-uncompleteChecklist": "as rendut incomplet la checklist __checklist__ de la carta __card__ de la tièra __list__ del corredor __swimlane__ del tablèu __board__", "act-addComment": "as comentat la carta __card__: __comment__ de la tièra __list__ del corredor __swimlane__ del tablèu __board__", "act-createBoard": "as creat lo tablèu __board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", "act-createCard": "as creat la carta __card__ de la tièra __list__ del corredor __swimlane__ del tablèu __board__", "act-createCustomField": "as creat lo camp personalizat __customField__ a la carta __card__ de la tièra __list__ del corredor __swimlane__ del tablèu __board__", "act-createList": "as apondut la tièra __list__ al tablèu __board__", diff --git a/i18n/pl.i18n.json b/i18n/pl.i18n.json index ac7d0f4d4..d25d5aee9 100644 --- a/i18n/pl.i18n.json +++ b/i18n/pl.i18n.json @@ -5,7 +5,9 @@ "act-deleteAttachment": "Usunięto załącznik __attachment__ na karcie __card__ na liście __list__ w diagramie czynności __swimlane__ na tablicy __board__", "act-addSubtask": "Dodane podzadanie __subtask__ na karcie __card__ na liście __list__ w diagramie czynności __swimlane__ na tablicy __board__", "act-addLabel": "Dodano etykietę __label__ do karty __card__ na liście __list__ w diagramie czynności __swimlane__ na tablicy __board__", + "act-addedLabel": "Dodano etykietę __label__ do karty __card__ na liście __list__ w diagramie czynności __swimlane__ na tablicy __board__", "act-removeLabel": "Usunięto etykietę __label__ z karty __card__ na liście __list__ w diagramie czynności __swimlane__ na tablicy __board__", + "act-removedLabel": "Usunięto etykietę __label__ z karty __card__ na liście __list__ w diagramie czynności __swimlane__ na tablicy __board__", "act-addChecklist": "Dodano listę zadań __checklist__ do karty __card__ na liście __list__ w diagramie czynności __swimlane__ na tablicy __board__", "act-addChecklistItem": "Dodano element listy zadań __checklistItem__ do listy zadań __checklist__ na karcie __card__ na liście __list__ na diagramie czynności __swimlane__ na tablicy __board__", "act-removeChecklist": "Usunięto listę zadań __checklist__ z karty __card__ na liście __list__ na diagramie czynności __swimlane__ na tablicy __board__", @@ -16,6 +18,7 @@ "act-uncompleteChecklist": "Wycofano ukończenie wykonania listy __checklist__ na karcie __card__ na liście __list__ na diagramie czynności__ na tablicy __board__", "act-addComment": "Dodano komentarz na karcie __card__: __comment__ na liście __list__ na diagramie czynności __swimlane__ na tablicy __board__", "act-createBoard": "Utworzono tablicę __board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", "act-createCard": "Utworzono kartę __card__ na liście __list__ na diagramie czynności __swimlane__ na tablicy __board__", "act-createCustomField": "Utworzono niestandardowe pole __customField__ na karcie __card__ na liście __list__ na diagramie czynności__ na tablicy __board__", "act-createList": "Dodano listę __list__ do tablicy __board__", diff --git a/i18n/pt-BR.i18n.json b/i18n/pt-BR.i18n.json index 7a7264b50..8230146f8 100644 --- a/i18n/pt-BR.i18n.json +++ b/i18n/pt-BR.i18n.json @@ -5,7 +5,9 @@ "act-deleteAttachment": "excluido anexo __attachment__ do cartão __card__ na lista __list__ em raia __swimlane__ no quadro __board__", "act-addSubtask": "adicionada subtarefa __subtask__ ao cartão __card__ na lista __list__ em raia __swimlane__ no quadro __board__", "act-addLabel": "Adicionada etiqueta __label__ ao cartão __card__ na lista __list__ em raia __swimlane__ no quadro __board__", + "act-addedLabel": "Adicionada etiqueta __label__ ao cartão __card__ na lista __list__ em raia __swimlane__ no quadro __board__", "act-removeLabel": "Removida etiqueta __label__ do cartão __card__ na lista __list__ em raia __swimlane__ no quadro __board__", + "act-removedLabel": "Removida etiqueta __label__ do cartão __card__ na lista __list__ em raia __swimlane__ no quadro __board__", "act-addChecklist": "adicionada lista de verificação __checklist__ ao cartão __card__ na lista __list__ em raia __swimlane__ no quadro __board__", "act-addChecklistItem": "adicionado o item __checklistItem__ a lista de verificação__checklist__ no cartão __card__ na lista __list__ em raia __swimlane__ no quadro __board__", "act-removeChecklist": "emovida a lista de verificação __checklist__ do cartão __card__ na lista __list__ em raia __swimlane__ no quadro __board__", @@ -16,6 +18,7 @@ "act-uncompleteChecklist": "lista de verificação incompleta __checklist__ no cartão __card__ na lista __list__ em raia __swimlane__ no quadro __board__", "act-addComment": "comentou no cartão __card__: __comment__ na lista __list__ em raia __swimlane__ no quadro __board__", "act-createBoard": "criado quadro__board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", "act-createCard": "criado cartão __card__ na lista __list__ em raia __swimlane__ no quadro __board__", "act-createCustomField": "criado campo customizado __customField__ no cartão __card__ na lista __list__ em raia __swimlane__ no quadro __board__", "act-createList": "adicionada lista __list__ ao quadro __board__", diff --git a/i18n/pt.i18n.json b/i18n/pt.i18n.json index 70478aeb6..225b5adb0 100644 --- a/i18n/pt.i18n.json +++ b/i18n/pt.i18n.json @@ -5,7 +5,9 @@ "act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", @@ -16,6 +18,7 @@ "act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createBoard": "created board __board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__", "act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createList": "added list __list__ to board __board__", diff --git a/i18n/ro.i18n.json b/i18n/ro.i18n.json index 4d2a3fe47..33564db8f 100644 --- a/i18n/ro.i18n.json +++ b/i18n/ro.i18n.json @@ -5,7 +5,9 @@ "act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", @@ -16,6 +18,7 @@ "act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createBoard": "created board __board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__", "act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createList": "added list __list__ to board __board__", diff --git a/i18n/ru.i18n.json b/i18n/ru.i18n.json index 3789be9fd..4d163ddf3 100644 --- a/i18n/ru.i18n.json +++ b/i18n/ru.i18n.json @@ -5,7 +5,9 @@ "act-deleteAttachment": "удалил вложение __attachment__ из карточки __card__ в списке __list__ на дорожке __swimlane__ доски __board__", "act-addSubtask": "добавил подзадачу __subtask__ для карточки __card__ в списке __list__ на дорожке __swimlane__ доски __board__", "act-addLabel": "Добавлена метка __label__ в карточку __card__ в списке __list__ на дорожке __swimlane__ доски __board__", + "act-addedLabel": "Добавлена метка __label__ в карточку __card__ в списке __list__ на дорожке __swimlane__ доски __board__", "act-removeLabel": "Снята метка __label__ с карточки __card__ в списке __list__ на дорожке __swimlane__ доски __board__", + "act-removedLabel": "Снята метка __label__ с карточки __card__ в списке __list__ на дорожке __swimlane__ доски __board__", "act-addChecklist": "добавил контрольный список __checklist__ в карточку __card__ в списке __list__ на дорожке __swimlane__ доски __board__", "act-addChecklistItem": "добавил пункт __checklistItem__ в контрольный список __checklist__ в карточке __card__ в списке __list__ на дорожке __swimlane__ доски __board__", "act-removeChecklist": "удалил контрольный список __checklist__ из карточки __card__ в списке __list__ на дорожке __swimlane__ доски __board__", @@ -16,6 +18,7 @@ "act-uncompleteChecklist": "вновь открыл контрольный список __checklist__ в карточке __card__ в списке __list__ на дорожке __swimlane__ доски __board__", "act-addComment": "написал в карточке __card__: __comment__ в списке __list__ на дорожке __swimlane__ доски __board__", "act-createBoard": "создал доску __board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", "act-createCard": "создал карточку __card__ в списке __list__ на дорожке __swimlane__ доски __board__", "act-createCustomField": "создал поле __customField__ в карточке __card__ в списке __list__ на дорожке __swimlane__ доски __board__\n", "act-createList": "добавил список __list__ на доску __board__", diff --git a/i18n/sr.i18n.json b/i18n/sr.i18n.json index dfebbcfa1..0244a0e44 100644 --- a/i18n/sr.i18n.json +++ b/i18n/sr.i18n.json @@ -5,7 +5,9 @@ "act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", @@ -16,6 +18,7 @@ "act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createBoard": "created board __board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__", "act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createList": "added list __list__ to board __board__", diff --git a/i18n/sv.i18n.json b/i18n/sv.i18n.json index a3be3e948..bd9c3a507 100644 --- a/i18n/sv.i18n.json +++ b/i18n/sv.i18n.json @@ -5,7 +5,9 @@ "act-deleteAttachment": "raderade bifogad fil __attachment__ från kort __card__ i lista __list__ i simbana __swimlane__ på tavla __board__", "act-addSubtask": "la till underaktivitet __subtask__ på kort __card__ i lista __list__ i simbana __swimlane__ på tavla __board__", "act-addLabel": "la till etikett __label__ på kort __card__ i lista __list__ i simbana __swimlane__ på tavla __board__", + "act-addedLabel": "la till etikett __label__ på kort __card__ i lista __list__ i simbana __swimlane__ på tavla __board__", "act-removeLabel": "Tog bort etikett __label__ från kort __card__ i lista __list__ i simbana __swimlane__ på tavla __board__", + "act-removedLabel": "Tog bort etikett __label__ från kort __card__ i lista __list__ i simbana __swimlane__ på tavla __board__", "act-addChecklist": "la till checklista __checklist__ på kort __card__ i lista __list__ i simbana __swimlane__ på tavla __board__", "act-addChecklistItem": "la till checklistobjekt __checklistItem__ till checklista __checklist__ på kort __card__ i lista __list__ i simbana __swimlane__ på tavla __board__", "act-removeChecklist": "tag bort checklista __checklist__ från kort __card__ i lista __list__ i simbana __swimlane__ på tavla __board__", @@ -16,6 +18,7 @@ "act-uncompleteChecklist": "ofullbordade checklista __checklist__ på kort __card__ i lista __list__ i simbana __swimlane__ på tavla __board__", "act-addComment": "kommenterade på kort __card__: __comment__ i lista __list__ i simbana __swimlane__ på tavla __board__", "act-createBoard": "skapade tavla __board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", "act-createCard": "skapade kort __card__ i lista __list__ i simbana __swimlane__ på tavla __board__", "act-createCustomField": "skapade anpassat fält __customField__ på kort __card__ i lista __list__ i simbana __swimlane__ på tavla __board__", "act-createList": "la till lista __list__ på tavla __board__", diff --git a/i18n/sw.i18n.json b/i18n/sw.i18n.json index 723220322..b82240fad 100644 --- a/i18n/sw.i18n.json +++ b/i18n/sw.i18n.json @@ -5,7 +5,9 @@ "act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", @@ -16,6 +18,7 @@ "act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createBoard": "created board __board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__", "act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createList": "added list __list__ to board __board__", diff --git a/i18n/ta.i18n.json b/i18n/ta.i18n.json index 61402cabe..9473d1943 100644 --- a/i18n/ta.i18n.json +++ b/i18n/ta.i18n.json @@ -5,7 +5,9 @@ "act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", @@ -16,6 +18,7 @@ "act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createBoard": "created board __board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__", "act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createList": "added list __list__ to board __board__", diff --git a/i18n/th.i18n.json b/i18n/th.i18n.json index 2b7816b11..17a54304e 100644 --- a/i18n/th.i18n.json +++ b/i18n/th.i18n.json @@ -5,7 +5,9 @@ "act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", @@ -16,6 +18,7 @@ "act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createBoard": "created board __board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__", "act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createList": "added list __list__ to board __board__", diff --git a/i18n/tr.i18n.json b/i18n/tr.i18n.json index a9967203c..ca1761b3a 100644 --- a/i18n/tr.i18n.json +++ b/i18n/tr.i18n.json @@ -5,7 +5,9 @@ "act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", @@ -16,6 +18,7 @@ "act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createBoard": "created board __board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__", "act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createList": "added list __list__ to board __board__", diff --git a/i18n/uk.i18n.json b/i18n/uk.i18n.json index b4584f0c7..79eec8474 100644 --- a/i18n/uk.i18n.json +++ b/i18n/uk.i18n.json @@ -5,7 +5,9 @@ "act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", @@ -16,6 +18,7 @@ "act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createBoard": "Створити Коробко", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__", "act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createList": "added list __list__ to board __board__", @@ -570,27 +573,27 @@ "activity-delete-attach-card": "deleted an attachment", "activity-set-customfield": "set custom field '%s' to '%s' in %s", "activity-unset-customfield": "unset custom field '%s' in %s", - "r-rule": "Rule", + "r-rule": "Правило", "r-add-trigger": "Add trigger", "r-add-action": "Add action", - "r-board-rules": "Board rules", + "r-board-rules": "Дошка правил", "r-add-rule": "Add rule", - "r-view-rule": "View rule", - "r-delete-rule": "Delete rule", - "r-new-rule-name": "New rule title", + "r-view-rule": "Переглянути правило", + "r-delete-rule": "Видалити правило", + "r-new-rule-name": "Заголовок нового правила\n", "r-no-rules": "No rules", "r-when-a-card": "When a card", "r-is": "is", "r-is-moved": "is moved", "r-added-to": "added to", - "r-removed-from": "Removed from", - "r-the-board": "the board", + "r-removed-from": "Видалити з", + "r-the-board": "Дошка", "r-list": "list", "set-filter": "Set Filter", - "r-moved-to": "Moved to", - "r-moved-from": "Moved from", - "r-archived": "Moved to Archive", - "r-unarchived": "Restored from Archive", + "r-moved-to": "переміщено до", + "r-moved-from": "переміщено з", + "r-archived": "переміщено до Архіву", + "r-unarchived": "Відновлено з Архіву", "r-a-card": "a card", "r-when-a-label-is": "When a label is", "r-when-the-label-is": "When the label is", @@ -613,12 +616,12 @@ "r-its-list": "its list", "r-archive": "Move to Archive", "r-unarchive": "Restore from Archive", - "r-card": "card", + "r-card": "Картка", "r-add": "Додати", - "r-remove": "Remove", + "r-remove": "Видалити\n", "r-label": "label", - "r-member": "member", - "r-remove-all": "Remove all members from the card", + "r-member": "Користувач", + "r-remove-all": "Видалити усіх учасників картки", "r-set-color": "Set color to", "r-checklist": "checklist", "r-check-all": "Check all", @@ -630,16 +633,16 @@ "r-of-checklist": "of checklist", "r-send-email": "Send an email", "r-to": "to", - "r-subject": "subject", + "r-subject": "Об'єкт", "r-rule-details": "Rule details", "r-d-move-to-top-gen": "Move card to top of its list", "r-d-move-to-top-spec": "Move card to top of list", "r-d-move-to-bottom-gen": "Move card to bottom of its list", "r-d-move-to-bottom-spec": "Move card to bottom of list", - "r-d-send-email": "Send email", + "r-d-send-email": "Відправити email", "r-d-send-email-to": "to", - "r-d-send-email-subject": "subject", - "r-d-send-email-message": "message", + "r-d-send-email-subject": "Об'єкт", + "r-d-send-email-message": "повідомлення", "r-d-archive": "Move card to Archive", "r-d-unarchive": "Restore card from Archive", "r-d-add-label": "Add label", @@ -647,8 +650,8 @@ "r-create-card": "Create new card", "r-in-list": "in list", "r-in-swimlane": "in swimlane", - "r-d-add-member": "Add member", - "r-d-remove-member": "Remove member", + "r-d-add-member": "Додати користувача", + "r-d-remove-member": "Видалити користувача", "r-d-remove-all-member": "Remove all member", "r-d-check-all": "Check all items of a list", "r-d-uncheck-all": "Uncheck all items of a list", diff --git a/i18n/vi.i18n.json b/i18n/vi.i18n.json index 8bdf6deb2..9d1800214 100644 --- a/i18n/vi.i18n.json +++ b/i18n/vi.i18n.json @@ -5,7 +5,9 @@ "act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", @@ -16,6 +18,7 @@ "act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createBoard": "created board __board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__", "act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createList": "added list __list__ to board __board__", diff --git a/i18n/zh-CN.i18n.json b/i18n/zh-CN.i18n.json index 612b5ae8d..1fde84fb4 100644 --- a/i18n/zh-CN.i18n.json +++ b/i18n/zh-CN.i18n.json @@ -5,7 +5,9 @@ "act-deleteAttachment": "删除看板 __board__ 中的泳道 __swimlane__ 中的列表 __list__ 中的卡片 __card__ 中的附件 __attachment__", "act-addSubtask": "添加子任务 __subtask__ 到看板 __board__ 中的泳道 __swimlane__ 中的列表 __list__ 中的卡片 __card__ 中", "act-addLabel": "添加标签 __label__ 到看板 __board__ 中的泳道 __swimlane__ 中的列表 __list__ 中的卡片 __card__ 中", + "act-addedLabel": "添加标签 __label__ 到看板 __board__ 中的泳道 __swimlane__ 中的列表 __list__ 中的卡片 __card__ 中", "act-removeLabel": "移除看板 __board__ 中的泳道 __swimlane__ 中的列表 __list__ 中的卡片 __card__ 中的标签 __label__ ", + "act-removedLabel": "移除看板 __board__ 中的泳道 __swimlane__ 中的列表 __list__ 中的卡片 __card__ 中的标签 __label__ ", "act-addChecklist": "添加清单 __checklist__ 到看板 __board__ 中的泳道 __swimlane__ 中的列表 __list__ 中的卡片 __card__ 中", "act-addChecklistItem": "添加清单项 __checklistItem__ 到看板 __board__ 中的泳道 __swimlane__ 中的列表 __list__ 中的卡片 __card__ 中的清单 __checklist__", "act-removeChecklist": "移除看板 __board__ 中的泳道 __swimlane__ 中的列表 __list__ 中的卡片 __card__ 中的清单 __checklist__", @@ -16,6 +18,7 @@ "act-uncompleteChecklist": "看板 __board__ 中的泳道 __swimlane__ 中的列表 __list__ 中的卡片 __card__ 中的清单 __checklist__ 未完成", "act-addComment": "对看板 __board__ 中的泳道 __swimlane__ 中的列表 __list__ 中的卡片 __card__ 发表了评论: __comment__ ", "act-createBoard": "创建看板 __board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__", "act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createList": "添加列表 __list__ 至看板 __board__", diff --git a/i18n/zh-TW.i18n.json b/i18n/zh-TW.i18n.json index 6c5f194c6..0f14c4a93 100644 --- a/i18n/zh-TW.i18n.json +++ b/i18n/zh-TW.i18n.json @@ -5,7 +5,9 @@ "act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", @@ -16,6 +18,7 @@ "act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createBoard": "created board __board__", + "act-createSwimlane": "created swimlane __swimlane__ to board __board__", "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__", "act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createList": "added list __list__ to board __board__", diff --git a/public/wekan-manifest.json b/public/wekan-manifest.json index e35583c0f..ee223e8cb 100644 --- a/public/wekan-manifest.json +++ b/public/wekan-manifest.json @@ -1,16 +1,16 @@ { - "name": "Kanban", - "short_name": "Kanban", + "name": "Wekan", + "short_name": "Wekan", "description": "The open-source kanban", "lang": "en-US", "icons": [ { - "src": "/logo-150.png", + "src": "/wekan-logo-150.png", "type": "image/png", "sizes": "150x150" }, { - "src": "/logo-150.svg", + "src": "/wekan-logo-150.svg", "type": "image/svg+xml", "sizes": "150x150" } diff --git a/server/notifications/outgoing.js b/server/notifications/outgoing.js index 257fbda14..307445559 100644 --- a/server/notifications/outgoing.js +++ b/server/notifications/outgoing.js @@ -18,7 +18,7 @@ Meteor.methods({ // label activity did not work yet, see wekan/models/activities.js const quoteParams = _.clone(params); - ['card', 'list', 'oldList', 'board', 'oldBoard', 'comment', 'checklist', 'swimlane', 'oldSwimlane'].forEach((key) => { + ['card', 'list', 'oldList', 'board', 'oldBoard', 'comment', 'checklist', 'swimlane', 'oldSwimlane', 'label'].forEach((key) => { if (quoteParams[key]) quoteParams[key] = `"${params[key]}"`; }); From fab3ce46b8680b2de0237bb8298a05f688cdf121 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Mon, 25 Mar 2019 17:02:36 +0200 Subject: [PATCH 04/54] - Fix typos. - Fix Outgoing Webhook message about created new swimlane. Related #1969 --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9241e17e6..2c5e4e267 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,12 @@ +# Upcoming Wekan release + +This release fixes the following bugs: + +- Fix typos. +- [Fix Outgoing Webhook message about created new swimlane](https://github.com/wekan/wekan/issues/1969). + +Thanks to above GitHub users for their contributions and translators for their translations. + # v2.53 2019-03-23 Wekan release This release fixes the following bugs: From 0855e3e32f49a26c0a4326c9c71f7d40afece989 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Mon, 25 Mar 2019 17:04:29 +0200 Subject: [PATCH 05/54] Update translations. --- i18n/pt-BR.i18n.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/pt-BR.i18n.json b/i18n/pt-BR.i18n.json index 8230146f8..5d82d841b 100644 --- a/i18n/pt-BR.i18n.json +++ b/i18n/pt-BR.i18n.json @@ -18,7 +18,7 @@ "act-uncompleteChecklist": "lista de verificação incompleta __checklist__ no cartão __card__ na lista __list__ em raia __swimlane__ no quadro __board__", "act-addComment": "comentou no cartão __card__: __comment__ na lista __list__ em raia __swimlane__ no quadro __board__", "act-createBoard": "criado quadro__board__", - "act-createSwimlane": "created swimlane __swimlane__ to board __board__", + "act-createSwimlane": "criada a raia __swimlane__ no quadro __board__", "act-createCard": "criado cartão __card__ na lista __list__ em raia __swimlane__ no quadro __board__", "act-createCustomField": "criado campo customizado __customField__ no cartão __card__ na lista __list__ em raia __swimlane__ no quadro __board__", "act-createList": "adicionada lista __list__ ao quadro __board__", @@ -31,7 +31,7 @@ "act-importCard": "importado cartão __card__ para lista __list__ em raia __swimlane__ no quadro __board__", "act-importList": "importada lista __list__ para raia __swimlane__ no quadro __board__", "act-joinMember": "adicionado membro __member__ ao cartão __card__ na lista __list__ em raia __swimlane__ no quadro __board__", - "act-moveCard": "moved card __card__ at board __board__ from list __oldList__ at swimlane __oldSwimlane__ to list __list__ at swimlane __swimlane__", + "act-moveCard": "movido cartão __card__ do quadro __board__ da raia __oldSwimlane__ da lista __oldList__ para a raia __swimlane__ na lista __list__ ", "act-moveCardToOtherBoard": "movido cartão __card__ da lista __oldList__ em raia __oldSwimlane__ no quadro __oldBoard__ para lista __list__ em raia __swimlane__ no quadro __board__", "act-removeBoardMember": "removido membro __member__ do quadro __board__", "act-restoredCard": "restaurado cartão __card__ a lista __list__ em raia __swimlane__ no quadro __board__", From eec8f45de510cf92dfc37615420d3302630f5a20 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Mon, 25 Mar 2019 17:11:29 +0200 Subject: [PATCH 06/54] v2.54 --- CHANGELOG.md | 2 +- Stackerfile.yml | 2 +- package.json | 2 +- sandstorm-pkgdef.capnp | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2c5e4e267..d2e010685 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -# Upcoming Wekan release +# v2.54 2019-03-25 Wekan release This release fixes the following bugs: diff --git a/Stackerfile.yml b/Stackerfile.yml index 48f2b26a1..42307f5ec 100644 --- a/Stackerfile.yml +++ b/Stackerfile.yml @@ -1,5 +1,5 @@ appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928 -appVersion: "v2.53.0" +appVersion: "v2.54.0" files: userUploads: - README.md diff --git a/package.json b/package.json index d93acbb67..7a4dbac2e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v2.53.0", + "version": "v2.54.0", "description": "Open-Source kanban", "private": true, "scripts": { diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp index 46b1beec0..df54bd8fb 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 = 255, + appVersion = 256, # Increment this for every release. - appMarketingVersion = (defaultText = "2.53.0~2019-03-23"), + appMarketingVersion = (defaultText = "2.54.0~2019-03-25"), # Human-readable presentation of the app version. minUpgradableAppVersion = 0, From 0674ce19fe280ef21ee7089699ed18e195defebf Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Mon, 25 Mar 2019 17:18:01 +0200 Subject: [PATCH 07/54] Revert to original snapcraft.yaml. --- snapcraft.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/snapcraft.yaml b/snapcraft.yaml index 8485d0a76..2b4ab48bc 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -65,7 +65,7 @@ apps: parts: mongodb: - source: https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1804-4.0.7.tgz + source: https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1604-3.2.22.tgz plugin: dump stage-packages: [libssl1.0.0] filesets: @@ -85,7 +85,7 @@ parts: node-packages: - node-gyp - node-pre-gyp - - fibers + - fibers@2.0.0 build-packages: - ca-certificates - apt-utils From 625682a4dab43c525494af10121edbfd547786d7 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Mon, 25 Mar 2019 18:57:35 +0200 Subject: [PATCH 08/54] - Use older api2html@0.3.0 to fix broken snap and docker build, because newer api2html caused [breaking change](https://github.com/tobilg/api2html/commit/a9a41bca18db3f9ec61395d7262eff071a995783) at api2html/bin/api2html.js:23 has error about "php: "PHP". Thanks to bentiss with Apache I-CLA ! Closes #2286 --- Dockerfile | 2 +- snapcraft.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 5f89a9985..3a81a4725 100644 --- a/Dockerfile +++ b/Dockerfile @@ -302,7 +302,7 @@ RUN \ gosu wekan:wekan /home/wekan/.meteor/meteor -- help; \ \ # extract the OpenAPI specification - npm install -g api2html && \ + npm install -g api2html@0.3.0 && \ mkdir -p /home/wekan/python && \ chown wekan:wekan --recursive /home/wekan/python && \ cd /home/wekan/python && \ diff --git a/snapcraft.yaml b/snapcraft.yaml index 2b4ab48bc..e4b765a50 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -113,7 +113,7 @@ parts: mkdir -p ./public/api python3 ./openapi/generate_openapi.py --release $(git describe --tags --abbrev=0) > ./public/api/wekan.yml # we temporary need api2html and mkdirp - npm install -g api2html + npm install -g api2html@0.3.0 npm install -g mkdirp api2html -c ./public/logo-header.png -o ./public/api/wekan.html ./public/api/wekan.yml npm uninstall -g mkdirp From 14c493fc630c1eade00db236799ec6cf58767d85 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Mon, 25 Mar 2019 19:11:35 +0200 Subject: [PATCH 09/54] v2.55 --- CHANGELOG.md | 12 ++++++++++++ Stackerfile.yml | 2 +- package.json | 2 +- sandstorm-pkgdef.capnp | 4 ++-- 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d2e010685..f457bdb65 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,15 @@ +# v2.55 2019-03-25 Wekan release + +This release fixes the following bugs, thanks to bentiss with Apache I-CLA: + +- [Use older api2html@0.3.0](https://github.com/wekan/wekan/commit/625682a4dab43c525494af10121edbfd547786d7) + to fix [broken snap and docker build](https://github.com/wekan/wekan/issues/2286), + because newer api2html caused + [breaking change](https://github.com/tobilg/api2html/commit/a9a41bca18db3f9ec61395d7262eff071a995783) + at api2html/bin/api2html.js:23 has error about "php": "PHP". + +Thanks to above GitHub users for their contributions and translators for their translations. + # v2.54 2019-03-25 Wekan release This release fixes the following bugs: diff --git a/Stackerfile.yml b/Stackerfile.yml index 42307f5ec..dcf741495 100644 --- a/Stackerfile.yml +++ b/Stackerfile.yml @@ -1,5 +1,5 @@ appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928 -appVersion: "v2.54.0" +appVersion: "v2.55.0" files: userUploads: - README.md diff --git a/package.json b/package.json index 7a4dbac2e..afb4854b8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v2.54.0", + "version": "v2.55.0", "description": "Open-Source kanban", "private": true, "scripts": { diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp index df54bd8fb..ac6d9f420 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 = 256, + appVersion = 257, # Increment this for every release. - appMarketingVersion = (defaultText = "2.54.0~2019-03-25"), + appMarketingVersion = (defaultText = "2.55.0~2019-03-25"), # Human-readable presentation of the app version. minUpgradableAppVersion = 0, From a85d652db425b3e83312444d79e20c8e8f2e9a70 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Mon, 25 Mar 2019 20:09:31 +0200 Subject: [PATCH 10/54] Try to fix meteor-1.8 snap build. --- snapcraft.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/snapcraft.yaml b/snapcraft.yaml index e4b765a50..3f21f85aa 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -65,7 +65,7 @@ apps: parts: mongodb: - source: https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1604-3.2.22.tgz + source: https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1804-4.0.7.tgz plugin: dump stage-packages: [libssl1.0.0] filesets: @@ -206,7 +206,7 @@ parts: cp -r .build/bundle/* $SNAPCRAFT_PART_INSTALL/ cp .build/bundle/.node_version.txt $SNAPCRAFT_PART_INSTALL/ rm $SNAPCRAFT_PART_INSTALL/lib/node_modules/wekan - rm $SNAPCRAFT_PART_INSTALL/programs/server/npm/node_modules/meteor/rajit_bootstrap3-datepicker/lib/bootstrap-datepicker/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs + #rm $SNAPCRAFT_PART_INSTALL/programs/server/npm/node_modules/meteor/rajit_bootstrap3-datepicker/lib/bootstrap-datepicker/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs organize: README: README.wekan prime: From d753fc06c9e97e242da05c478bf20ed827da4b9b Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Tue, 26 Mar 2019 00:25:40 +0200 Subject: [PATCH 11/54] Use mongodb for Ubuntu 16.04 --- snapcraft.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/snapcraft.yaml b/snapcraft.yaml index 3f21f85aa..2eb3ac251 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -65,7 +65,7 @@ apps: parts: mongodb: - source: https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1804-4.0.7.tgz + source: https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1604-4.0.7.tgz plugin: dump stage-packages: [libssl1.0.0] filesets: From fb163a24939e97756ac91361893c55ec760355fa Mon Sep 17 00:00:00 2001 From: Benjamin Tissoires Date: Tue, 26 Mar 2019 15:13:35 +0100 Subject: [PATCH 12/54] list: simplify infinite scrolling Use IntersectionObserver instead of custom made one. This adds the benefit of not loading any extra cards if the list is not shown on screen --- client/components/lists/listBody.js | 59 ++++++++--------------------- 1 file changed, 16 insertions(+), 43 deletions(-) diff --git a/client/components/lists/listBody.js b/client/components/lists/listBody.js index 7d7670110..006f8f0d3 100644 --- a/client/components/lists/listBody.js +++ b/client/components/lists/listBody.js @@ -8,25 +8,25 @@ BlazeComponent.extendComponent({ }, onRendered() { - const domElement = this.find('.js-perfect-scrollbar'); + const spinner = this.find('.sk-spinner-list'); - this.$(domElement).on('scroll', () => this.updateList(domElement)); - $(window).on(`resize.${this.data().listId}`, () => this.updateList(domElement)); + if (spinner) { + const options = { + root: null, // we check if the spinner is on the current viewport + rootMargin: '0px', + threshold: 0.25, + }; - // we add a Mutation Observer to allow propagations of cardlimit - // when the spinner stays in the current view (infinite scrolling) - this.mutationObserver = new MutationObserver(() => this.updateList(domElement)); + const observer = new IntersectionObserver((entries) => { + entries.forEach((entry) => { + if (entry.isIntersecting) { + this.cardlimit.set(this.cardlimit.get() + InfiniteScrollIter); + } + }); + }, options); - this.mutationObserver.observe(domElement, { - childList: true, - }); - - this.updateList(domElement); - }, - - onDestroyed() { - $(window).off(`resize.${this.data().listId}`); - this.mutationObserver.disconnect(); + observer.observe(spinner); + } }, mixins() { @@ -191,38 +191,11 @@ BlazeComponent.extendComponent({ }); }, - spinnerInView(container) { - const parentViewHeight = container.clientHeight; - const bottomViewPosition = container.scrollTop + parentViewHeight; - - const spinner = this.find('.sk-spinner-list'); - - const threshold = spinner.offsetTop; - - return bottomViewPosition > threshold; - }, - showSpinner(swimlaneId) { const list = Template.currentData(); return list.cards(swimlaneId).count() > this.cardlimit.get(); }, - updateList(container) { - // first, if the spinner is not rendered, we have reached the end of - // the list of cards, so skip and disable firing the events - const target = this.find('.sk-spinner-list'); - if (!target) { - this.$(container).off('scroll'); - $(window).off(`resize.${this.data().listId}`); - return; - } - - if (this.spinnerInView(container)) { - this.cardlimit.set(this.cardlimit.get() + InfiniteScrollIter); - Ps.update(container); - } - }, - canSeeAddCard() { return !this.reachedWipLimit() && Meteor.user() && Meteor.user().isBoardMember() && !Meteor.user().isCommentOnly(); }, From 00376b43f82b1b751974e827931373595c40c0f7 Mon Sep 17 00:00:00 2001 From: Benjamin Tissoires Date: Tue, 26 Mar 2019 15:54:53 +0100 Subject: [PATCH 13/54] list: make sure the spinner of infinite scrolling doesn't show on load When loading a board on a high resolution screen, there is a chance there is not enough cards displayed and the spinner is still there, spinning forever. Add an idle callback that checks if the spinner is still there, and while it is there, extend the number of cards to show. Fixes #2250 --- client/components/lists/listBody.js | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/client/components/lists/listBody.js b/client/components/lists/listBody.js index 006f8f0d3..d6a62cc9f 100644 --- a/client/components/lists/listBody.js +++ b/client/components/lists/listBody.js @@ -5,6 +5,7 @@ BlazeComponent.extendComponent({ onCreated() { // for infinite scrolling this.cardlimit = new ReactiveVar(InfiniteScrollIter); + this.spinnerShown = false; }, onRendered() { @@ -19,9 +20,8 @@ BlazeComponent.extendComponent({ const observer = new IntersectionObserver((entries) => { entries.forEach((entry) => { - if (entry.isIntersecting) { - this.cardlimit.set(this.cardlimit.get() + InfiniteScrollIter); - } + this.spinnerShown = entry.isIntersecting; + this.updateList(); }); }, options); @@ -29,6 +29,13 @@ BlazeComponent.extendComponent({ } }, + updateList() { + if (this.spinnerShown) { + this.cardlimit.set(this.cardlimit.get() + InfiniteScrollIter); + window.requestIdleCallback(() => this.updateList()); + } + }, + mixins() { return [Mixins.PerfectScrollbar]; }, From cbb6c82113782c1ef235668ffb3c708431f6b400 Mon Sep 17 00:00:00 2001 From: Benjamin Tissoires Date: Tue, 26 Mar 2019 16:20:59 +0100 Subject: [PATCH 14/54] list: move the spinner into its own blaze component This way, when a list is at the maximum number of cards shown and adding a new card would make the spinner appear, the list would load the next N items. This can happen if user A and B are both looking at the same board, B adds a new cards, and A will see the spinner and will not be able to remove it. --- client/components/lists/listBody.jade | 19 ++++---- client/components/lists/listBody.js | 65 +++++++++++++++------------ 2 files changed, 47 insertions(+), 37 deletions(-) diff --git a/client/components/lists/listBody.jade b/client/components/lists/listBody.jade index 876b43d63..61fec93ad 100644 --- a/client/components/lists/listBody.jade +++ b/client/components/lists/listBody.jade @@ -13,14 +13,7 @@ template(name="listBody") class="{{#if MultiSelection.isSelected _id}}is-checked{{/if}}") +minicard(this) if (showSpinner (idOrNull ../../_id)) - .sk-spinner.sk-spinner-wave.sk-spinner-list( - class=currentBoard.colorClass - id="showMoreResults") - .sk-rect1 - .sk-rect2 - .sk-rect3 - .sk-rect4 - .sk-rect5 + +spinnerList if canSeeAddCard +inlinedForm(autoclose=false position="bottom") @@ -30,6 +23,16 @@ template(name="listBody") i.fa.fa-plus | {{_ 'add-card'}} +template(name="spinnerList") + .sk-spinner.sk-spinner-wave.sk-spinner-list( + class=currentBoard.colorClass + id="showMoreResults") + .sk-rect1 + .sk-rect2 + .sk-rect3 + .sk-rect4 + .sk-rect5 + template(name="addCardForm") .minicard.minicard-composer.js-composer if getLabels diff --git a/client/components/lists/listBody.js b/client/components/lists/listBody.js index d6a62cc9f..2e6591e2d 100644 --- a/client/components/lists/listBody.js +++ b/client/components/lists/listBody.js @@ -5,35 +5,6 @@ BlazeComponent.extendComponent({ onCreated() { // for infinite scrolling this.cardlimit = new ReactiveVar(InfiniteScrollIter); - this.spinnerShown = false; - }, - - onRendered() { - const spinner = this.find('.sk-spinner-list'); - - if (spinner) { - const options = { - root: null, // we check if the spinner is on the current viewport - rootMargin: '0px', - threshold: 0.25, - }; - - const observer = new IntersectionObserver((entries) => { - entries.forEach((entry) => { - this.spinnerShown = entry.isIntersecting; - this.updateList(); - }); - }, options); - - observer.observe(spinner); - } - }, - - updateList() { - if (this.spinnerShown) { - this.cardlimit.set(this.cardlimit.get() + InfiniteScrollIter); - window.requestIdleCallback(() => this.updateList()); - } }, mixins() { @@ -641,3 +612,39 @@ BlazeComponent.extendComponent({ }]; }, }).register('searchElementPopup'); + +BlazeComponent.extendComponent({ + onCreated() { + this.spinnerShown = false; + this.cardlimit = this.parentComponent().cardlimit; + }, + + onRendered() { + const spinner = this.find('.sk-spinner-list'); + + if (spinner) { + const options = { + root: null, // we check if the spinner is on the current viewport + rootMargin: '0px', + threshold: 0.25, + }; + + const observer = new IntersectionObserver((entries) => { + entries.forEach((entry) => { + this.spinnerShown = entry.isIntersecting; + this.updateList(); + }); + }, options); + + observer.observe(spinner); + } + }, + + updateList() { + if (this.spinnerShown) { + this.cardlimit.set(this.cardlimit.get() + InfiniteScrollIter); + window.requestIdleCallback(() => this.updateList()); + } + }, + +}).register('spinnerList'); From e2d0faa539e287247ccd1208fe74705169749210 Mon Sep 17 00:00:00 2001 From: Benjamin Tissoires Date: Tue, 26 Mar 2019 16:22:55 +0100 Subject: [PATCH 15/54] list: disconnect infinite-scroll observer to prevent memory leak --- client/components/lists/listBody.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/client/components/lists/listBody.js b/client/components/lists/listBody.js index 2e6591e2d..112b63796 100644 --- a/client/components/lists/listBody.js +++ b/client/components/lists/listBody.js @@ -629,17 +629,21 @@ BlazeComponent.extendComponent({ threshold: 0.25, }; - const observer = new IntersectionObserver((entries) => { + this.observer = new IntersectionObserver((entries) => { entries.forEach((entry) => { this.spinnerShown = entry.isIntersecting; this.updateList(); }); }, options); - observer.observe(spinner); + this.observer.observe(spinner); } }, + onDestroyed() { + this.observer.disconnect(); + }, + updateList() { if (this.spinnerShown) { this.cardlimit.set(this.cardlimit.get() + InfiniteScrollIter); From b0d507c2dda4f6630937db09cf235c8a478f2a3e Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 27 Mar 2019 17:38:54 +0200 Subject: [PATCH 16/54] [Fixes the following bugs](https://github.com/wekan/wekan/pull/2287): - [#2250 -> the spinner could be shown on startup and never goes away](https://github.com/wekan/wekan/issues/2250). - The code will now only load extra cards that will be in the current viewport. - When 2 users were interacting on the same board, there was a situation where the spinner could show up on the other user, without being able to load the extra cards. - The code is now much simpler, thanks to the IntersectionObserver, and all of this for fewer lines of code :) Thanks to bentiss with Apache I-CLA ! Closes #2250 --- CHANGELOG.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f457bdb65..9042add41 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,14 @@ +# Upcoming Wekan release + +This release [fixes the following bugs](https://github.com/wekan/wekan/pull/2287), thanks to bentiss with Apache I-CLA: + +- [#2250 -> the spinner could be shown on startup and never goes away](https://github.com/wekan/wekan/issues/2250). +- The code will now only load extra cards that will be in the current viewport. +- When 2 users were interacting on the same board, there was a situation where the spinner could show up on the other user, without being able to load the extra cards. +- The code is now much simpler, thanks to the IntersectionObserver, and all of this for fewer lines of code :) + +Thanks to above GitHub users for their contributions and translators for their translations. + # v2.55 2019-03-25 Wekan release This release fixes the following bugs, thanks to bentiss with Apache I-CLA: From ad1a81e8a01408b542a508cf3968152d8b753680 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 27 Mar 2019 17:46:09 +0200 Subject: [PATCH 17/54] Update translations. --- i18n/de.i18n.json | 2 +- i18n/es.i18n.json | 8 ++++---- i18n/fr.i18n.json | 2 +- i18n/he.i18n.json | 12 ++++++------ i18n/pl.i18n.json | 8 ++++---- i18n/tr.i18n.json | 14 +++++++------- 6 files changed, 23 insertions(+), 23 deletions(-) diff --git a/i18n/de.i18n.json b/i18n/de.i18n.json index 58229e1ef..c94ac1d28 100644 --- a/i18n/de.i18n.json +++ b/i18n/de.i18n.json @@ -18,7 +18,7 @@ "act-uncompleteChecklist": "unvollendete Checkliste __checklist__ der Karte __card__ auf der Liste __list__ bei Swimlane __swimlane__ an Board __board__", "act-addComment": "kommentierte eine Karte __card__: __comment__ auf der Liste __list__ bei Swimlane __swimlane__ an Board __board__", "act-createBoard": "hat Board __board__ erstellt", - "act-createSwimlane": "created swimlane __swimlane__ to board __board__", + "act-createSwimlane": "erstellte Swimlane __swimlane__ auf Board __board__", "act-createCard": "erstellte Karte __card__ auf Liste __list__ bei Swimlane __swimlane__ an Board __board__", "act-createCustomField": "erstellte ein benutzerdefiniertes Feld __customField__ für Karte __card__ auf der Liste __list__ bei Swimlane __swimlane__ an Board __board__", "act-createList": "hat Liste __list__ zu Board __board__ hinzugefügt", diff --git a/i18n/es.i18n.json b/i18n/es.i18n.json index 18d5747e3..e09c68bb3 100644 --- a/i18n/es.i18n.json +++ b/i18n/es.i18n.json @@ -17,10 +17,10 @@ "act-completeChecklist": "completada la lista de verificación __checklist__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__", "act-uncompleteChecklist": "no completada la lista de verificación __checklist__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__", "act-addComment": "comentario en la tarjeta__card__: __comment__ de la lista __list__ del carril __swimlane__ del tablero __board__", - "act-createBoard": "creado el tablero __board__", - "act-createSwimlane": "created swimlane __swimlane__ to board __board__", + "act-createBoard": "creó el tablero __board__", + "act-createSwimlane": "creó el carril de flujo __swimlane__ en el tablero __board__", "act-createCard": "creada la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__", - "act-createCustomField": "creado el campo personalizado __customField__ en la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__", + "act-createCustomField": "creó el campo personalizado __customField__ en la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__", "act-createList": "añadida la lista __list__ al tablero __board__", "act-addBoardMember": "añadido el mimbro __member__ al tablero __board__", "act-archivedBoard": "El tablero __board__ se ha movido a Archivo", @@ -45,7 +45,7 @@ "activity-archived": "%s movido a Archivo", "activity-attached": "ha adjuntado %s a %s", "activity-created": "ha creado %s", - "activity-customfield-created": "creado el campo personalizado %s", + "activity-customfield-created": "creó el campo personalizado %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", diff --git a/i18n/fr.i18n.json b/i18n/fr.i18n.json index 22868b52e..f5b3faab8 100644 --- a/i18n/fr.i18n.json +++ b/i18n/fr.i18n.json @@ -18,7 +18,7 @@ "act-uncompleteChecklist": "a rendu incomplet la checklist __checklist__ de la carte __card__ de la liste __list__ du couloir __swimlane__ du tableau __board__", "act-addComment": "a commenté la carte __card__ : __comment__ dans la liste __list__ du couloir __swimlane__ du tableau __board__", "act-createBoard": "a créé le tableau __board__", - "act-createSwimlane": "created swimlane __swimlane__ to board __board__", + "act-createSwimlane": "a créé le couloir __swimlane__ dans le tableau __board__", "act-createCard": "a créé la carte __card__ de la liste __list__ du couloir __swimlane__ du tableau __board__", "act-createCustomField": "a créé le champ personnalisé __customField__ pour la carte __card__ de la liste __list__ du couloir __swimlane__ du tableau __board__", "act-createList": "a ajouté la liste __list__ au tableau __board__", diff --git a/i18n/he.i18n.json b/i18n/he.i18n.json index 5c1d5ecd0..489b4f61f 100644 --- a/i18n/he.i18n.json +++ b/i18n/he.i18n.json @@ -8,9 +8,9 @@ "act-addedLabel": "התווית __label__ נוספה לכרטיס __card__ ברשימה __list__ למסלול __swimlane__ שבלוח __board__", "act-removeLabel": "התווית __label__ הוסרה מהכרטיס __card__ ברשימה __list__ מהמסלול __swimlane__ שבלוח __board__", "act-removedLabel": "התווית __label__ הוסרה מהכרטיס __card__ ברשימה __list__ מהמסלול __swimlane__ שבלוח __board__", - "act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-addChecklist": "נוספה רשימת מטלות __checklist__ לכרטיס __card__ ברשימה __list__ שבמסלול __swimlane__ בלוח __board__", "act-addChecklistItem": "נוסף פריט סימון __checklistItem__ לרשימת המטלות __checklist__ לכרטיס __card__ ברשימה __list__ במסלול __swimlane__ בלוח __board__", - "act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-removeChecklist": "הוסרה רשימת מטלות __checklist__ מהכרטיס __card__ ברשימה __list__ שבמסלול __swimlane__ בלוח __board__", "act-removeChecklistItem": "removed checklist item __checklistItem__ from checklist __checkList__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-checkedItem": "checked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-uncheckedItem": "unchecked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", @@ -18,9 +18,9 @@ "act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createBoard": "הלוח __board__ נוצר", - "act-createSwimlane": "created swimlane __swimlane__ to board __board__", + "act-createSwimlane": "נוצר מסלול __swimlane__ בלוח __board__", "act-createCard": "הכרטיס __card__ נוצר ברשימה __list__ במסלול __swimlane__ שבלוח __board__", - "act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", + "act-createCustomField": "נוצר שדה בהתאמה אישית __customField__ בכרטיס __card__ שברשימה __list__ במסלול __swimlane__ שבלוח __board__", "act-createList": "הרשימה __list__ נוספה ללוח __board__", "act-addBoardMember": "החבר __member__ נוסף אל __board__", "act-archivedBoard": "הלוח __board__ הועבר לארכיון", @@ -571,8 +571,8 @@ "activity-added-label-card": "התווית ‚%s’ נוספה", "activity-removed-label-card": "התווית ‚%s’ הוסרה", "activity-delete-attach-card": "קובץ מצורף נמחק", - "activity-set-customfield": "set custom field '%s' to '%s' in %s", - "activity-unset-customfield": "unset custom field '%s' in %s", + "activity-set-customfield": "הגדרת שדה בהתאמה אישית ‚%s’ לערך ‚%s’ תחת %s", + "activity-unset-customfield": "ביטול הגדרת שדה בהתאמה אישית ‚%s’ תחת %s", "r-rule": "כלל", "r-add-trigger": "הוספת הקפצה", "r-add-action": "הוספת פעולה", diff --git a/i18n/pl.i18n.json b/i18n/pl.i18n.json index d25d5aee9..b8235f135 100644 --- a/i18n/pl.i18n.json +++ b/i18n/pl.i18n.json @@ -18,7 +18,7 @@ "act-uncompleteChecklist": "Wycofano ukończenie wykonania listy __checklist__ na karcie __card__ na liście __list__ na diagramie czynności__ na tablicy __board__", "act-addComment": "Dodano komentarz na karcie __card__: __comment__ na liście __list__ na diagramie czynności __swimlane__ na tablicy __board__", "act-createBoard": "Utworzono tablicę __board__", - "act-createSwimlane": "created swimlane __swimlane__ to board __board__", + "act-createSwimlane": "utworzono diagram czynności __swimlane__ na tablicy __board__", "act-createCard": "Utworzono kartę __card__ na liście __list__ na diagramie czynności __swimlane__ na tablicy __board__", "act-createCustomField": "Utworzono niestandardowe pole __customField__ na karcie __card__ na liście __list__ na diagramie czynności__ na tablicy __board__", "act-createList": "Dodano listę __list__ do tablicy __board__", @@ -31,7 +31,7 @@ "act-importCard": "Zaimportowano kartę __card__ do listy __list__ na diagramie czynności __swimlane__ na tablicy __board__", "act-importList": "Zaimportowano listę __list__ na diagram czynności __swimlane__ do tablicy __board__", "act-joinMember": "Dodano użytkownika __member__ do karty __card__ na liście __list__ na diagramie czynności __swimlane__ na tablicy __board__", - "act-moveCard": "moved card __card__ at board __board__ from list __oldList__ at swimlane __oldSwimlane__ to list __list__ at swimlane __swimlane__", + "act-moveCard": "przeniesiono kartę __card__ na tablicy __board__ z listy __oldList__ na diagramie czynności __oldSwimlane__ na listę __list__ na diagramie czynności __swimlane__", "act-moveCardToOtherBoard": "Przeniesiono kartę __card__ z listy __oldList__ na diagramie czynności __oldSwimlane__ na tablicy __oldBoard__ do listy __listy__ na diagramie czynności __swimlane__ na tablicy __board__", "act-removeBoardMember": "Usunięto użytkownika __member__ z tablicy __board__", "act-restoredCard": "Przywrócono kartę __card__ na listę __list__ na diagram czynności__ na tablicy __board__", @@ -571,8 +571,8 @@ "activity-added-label-card": "dodał(a) etykietę '%s'", "activity-removed-label-card": "usunięto etykietę '%s'", "activity-delete-attach-card": "usunięto załącznik", - "activity-set-customfield": "set custom field '%s' to '%s' in %s", - "activity-unset-customfield": "unset custom field '%s' in %s", + "activity-set-customfield": "ustawiono niestandardowe pole '%s' do '%s' na '%s'", + "activity-unset-customfield": "wyczyszczono niestandardowe pole '%s' na '%s'", "r-rule": "Reguła", "r-add-trigger": "Dodaj przełącznik", "r-add-action": "Dodaj czynność", diff --git a/i18n/tr.i18n.json b/i18n/tr.i18n.json index ca1761b3a..6f6264537 100644 --- a/i18n/tr.i18n.json +++ b/i18n/tr.i18n.json @@ -17,17 +17,17 @@ "act-completeChecklist": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__", - "act-createBoard": "created board __board__", - "act-createSwimlane": "created swimlane __swimlane__ to board __board__", - "act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__", + "act-createBoard": "__board__ panosu oluşturuldu", + "act-createSwimlane": "__board__ panosuna __swimlane__ kulvarı oluşturuldu", + "act-createCard": "__board__ panosunun __swimlane__ kulvarının __list__ listesinin __card__ kartı oluşturuldu", "act-createCustomField": "created custom field __customField__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-createList": "added list __list__ to board __board__", - "act-addBoardMember": "added member __member__ to board __board__", - "act-archivedBoard": "Board __board__ moved to Archive", + "act-addBoardMember": "__board__ panosuna __member__ kullanıcısı eklendi", + "act-archivedBoard": "__board__ panosu Arşiv'e taşındı", "act-archivedCard": "Card __card__ at list __list__ at swimlane __swimlane__ at board __board__ moved to Archive", "act-archivedList": "List __list__ at swimlane __swimlane__ at board __board__ moved to Archive", "act-archivedSwimlane": "Swimlane __swimlane__ at board __board__ moved to Archive", - "act-importBoard": "imported board __board__", + "act-importBoard": "__board__ panosu içeriye aktarıldı", "act-importCard": "imported card __card__ to list __list__ at swimlane __swimlane__ at board __board__", "act-importList": "imported list __list__ to swimlane __swimlane__ at board __board__", "act-joinMember": "added member __member__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", @@ -125,7 +125,7 @@ "boardChangeTitlePopup-title": "Panonun Adını Değiştir", "boardChangeVisibilityPopup-title": "Görünebilirliği Değiştir", "boardChangeWatchPopup-title": "İzleme Durumunu Değiştir", - "boardMenuPopup-title": "Board Settings", + "boardMenuPopup-title": "Pano Ayarları", "boards": "Panolar", "board-view": "Pano Görünümü", "board-view-cal": "Takvim", From 494d44f8bb6c575161449c42c100999cf0aa648f Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 27 Mar 2019 17:51:54 +0200 Subject: [PATCH 18/54] v2.56 --- CHANGELOG.md | 2 +- Stackerfile.yml | 2 +- package.json | 2 +- sandstorm-pkgdef.capnp | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9042add41..a141dd4f8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -# Upcoming Wekan release +# v2.56 2019-03-27 Wekan release This release [fixes the following bugs](https://github.com/wekan/wekan/pull/2287), thanks to bentiss with Apache I-CLA: diff --git a/Stackerfile.yml b/Stackerfile.yml index dcf741495..c4160e28d 100644 --- a/Stackerfile.yml +++ b/Stackerfile.yml @@ -1,5 +1,5 @@ appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928 -appVersion: "v2.55.0" +appVersion: "v2.56.0" files: userUploads: - README.md diff --git a/package.json b/package.json index afb4854b8..b9ae427ac 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v2.55.0", + "version": "v2.56.0", "description": "Open-Source kanban", "private": true, "scripts": { diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp index ac6d9f420..61b19d346 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 = 257, + appVersion = 258, # Increment this for every release. - appMarketingVersion = (defaultText = "2.55.0~2019-03-25"), + appMarketingVersion = (defaultText = "2.56.0~2019-03-27"), # Human-readable presentation of the app version. minUpgradableAppVersion = 0, From 5e7e9e8c0dc0318916c6584d93164247a1788733 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 27 Mar 2019 19:02:57 +0200 Subject: [PATCH 19/54] Change to MongoDB 4.0.7 legacy versions without curl to get it working. --- snapcraft.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/snapcraft.yaml b/snapcraft.yaml index 2eb3ac251..c73b8ccf2 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -65,7 +65,7 @@ apps: parts: mongodb: - source: https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1604-4.0.7.tgz + source: https://repo.mongodb.org/apt/ubuntu/dists/xenial/mongodb-org/4.0/multiverse/binary-amd64/mongodb-org-server_4.0.7_amd64.deb plugin: dump stage-packages: [libssl1.0.0] filesets: From bab340a8491a1a938fb31ac3f1dedfbf3a3381e3 Mon Sep 17 00:00:00 2001 From: justinr1234 Date: Thu, 28 Mar 2019 19:38:02 -0500 Subject: [PATCH 20/54] Add proper variables for join card Fixes #2285 --- models/cards.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/models/cards.js b/models/cards.js index be7e2b771..124883543 100644 --- a/models/cards.js +++ b/models/cards.js @@ -1384,6 +1384,9 @@ function cardMembers(userId, doc, fieldNames, modifier) { activityType: 'joinMember', boardId: doc.boardId, cardId: doc._id, + memberId, + listId: doc.listId, + swimlaneId: doc.swimlaneId, }); } } From df32545b07658626359405eeb97be2c86964dfc4 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Fri, 29 Mar 2019 14:27:37 +0200 Subject: [PATCH 21/54] Revert spinner etc fixes of Wekan v2.56, because of some new bugs. Thanks to gerroon ! Related #2250 --- client/components/lists/listBody.jade | 19 +++--- client/components/lists/listBody.js | 89 +++++++++++++++------------ 2 files changed, 57 insertions(+), 51 deletions(-) diff --git a/client/components/lists/listBody.jade b/client/components/lists/listBody.jade index 61fec93ad..876b43d63 100644 --- a/client/components/lists/listBody.jade +++ b/client/components/lists/listBody.jade @@ -13,7 +13,14 @@ template(name="listBody") class="{{#if MultiSelection.isSelected _id}}is-checked{{/if}}") +minicard(this) if (showSpinner (idOrNull ../../_id)) - +spinnerList + .sk-spinner.sk-spinner-wave.sk-spinner-list( + class=currentBoard.colorClass + id="showMoreResults") + .sk-rect1 + .sk-rect2 + .sk-rect3 + .sk-rect4 + .sk-rect5 if canSeeAddCard +inlinedForm(autoclose=false position="bottom") @@ -23,16 +30,6 @@ template(name="listBody") i.fa.fa-plus | {{_ 'add-card'}} -template(name="spinnerList") - .sk-spinner.sk-spinner-wave.sk-spinner-list( - class=currentBoard.colorClass - id="showMoreResults") - .sk-rect1 - .sk-rect2 - .sk-rect3 - .sk-rect4 - .sk-rect5 - template(name="addCardForm") .minicard.minicard-composer.js-composer if getLabels diff --git a/client/components/lists/listBody.js b/client/components/lists/listBody.js index 112b63796..7d7670110 100644 --- a/client/components/lists/listBody.js +++ b/client/components/lists/listBody.js @@ -7,6 +7,28 @@ BlazeComponent.extendComponent({ this.cardlimit = new ReactiveVar(InfiniteScrollIter); }, + onRendered() { + const domElement = this.find('.js-perfect-scrollbar'); + + this.$(domElement).on('scroll', () => this.updateList(domElement)); + $(window).on(`resize.${this.data().listId}`, () => this.updateList(domElement)); + + // we add a Mutation Observer to allow propagations of cardlimit + // when the spinner stays in the current view (infinite scrolling) + this.mutationObserver = new MutationObserver(() => this.updateList(domElement)); + + this.mutationObserver.observe(domElement, { + childList: true, + }); + + this.updateList(domElement); + }, + + onDestroyed() { + $(window).off(`resize.${this.data().listId}`); + this.mutationObserver.disconnect(); + }, + mixins() { return [Mixins.PerfectScrollbar]; }, @@ -169,11 +191,38 @@ BlazeComponent.extendComponent({ }); }, + spinnerInView(container) { + const parentViewHeight = container.clientHeight; + const bottomViewPosition = container.scrollTop + parentViewHeight; + + const spinner = this.find('.sk-spinner-list'); + + const threshold = spinner.offsetTop; + + return bottomViewPosition > threshold; + }, + showSpinner(swimlaneId) { const list = Template.currentData(); return list.cards(swimlaneId).count() > this.cardlimit.get(); }, + updateList(container) { + // first, if the spinner is not rendered, we have reached the end of + // the list of cards, so skip and disable firing the events + const target = this.find('.sk-spinner-list'); + if (!target) { + this.$(container).off('scroll'); + $(window).off(`resize.${this.data().listId}`); + return; + } + + if (this.spinnerInView(container)) { + this.cardlimit.set(this.cardlimit.get() + InfiniteScrollIter); + Ps.update(container); + } + }, + canSeeAddCard() { return !this.reachedWipLimit() && Meteor.user() && Meteor.user().isBoardMember() && !Meteor.user().isCommentOnly(); }, @@ -612,43 +661,3 @@ BlazeComponent.extendComponent({ }]; }, }).register('searchElementPopup'); - -BlazeComponent.extendComponent({ - onCreated() { - this.spinnerShown = false; - this.cardlimit = this.parentComponent().cardlimit; - }, - - onRendered() { - const spinner = this.find('.sk-spinner-list'); - - if (spinner) { - const options = { - root: null, // we check if the spinner is on the current viewport - rootMargin: '0px', - threshold: 0.25, - }; - - this.observer = new IntersectionObserver((entries) => { - entries.forEach((entry) => { - this.spinnerShown = entry.isIntersecting; - this.updateList(); - }); - }, options); - - this.observer.observe(spinner); - } - }, - - onDestroyed() { - this.observer.disconnect(); - }, - - updateList() { - if (this.spinnerShown) { - this.cardlimit.set(this.cardlimit.get() + InfiniteScrollIter); - window.requestIdleCallback(() => this.updateList()); - } - }, - -}).register('spinnerList'); From 0e422eb70dabe42347a0ccc01b23cba490b67f1c Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Fri, 29 Mar 2019 14:31:26 +0200 Subject: [PATCH 22/54] [Revert spinner etc fixes of Wekan v2.56, because of some new bugs](https://github.com/wekan/wekan/issues/2250). Thanks to gerroon ! Related #2250 --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a141dd4f8..c6878ab9d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,12 @@ +# Upcoming Wekan release + +This release reverts the following fixes: + +- [Revert spinner etc fixes of Wekan v2.56, because of some new bugs](https://github.com/wekan/wekan/issues/2250). + Thanks to gerroon. + +Thanks to above GitHub users for their contributions and translators for their translations. + # v2.56 2019-03-27 Wekan release This release [fixes the following bugs](https://github.com/wekan/wekan/pull/2287), thanks to bentiss with Apache I-CLA: From 6b9ac52af64fecb82ad7f43f9b27a9344f23fbb9 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Fri, 29 Mar 2019 14:34:24 +0200 Subject: [PATCH 23/54] Update translations. --- i18n/de.i18n.json | 68 +++++++-------- i18n/mk.i18n.json | 216 +++++++++++++++++++++++----------------------- i18n/ru.i18n.json | 2 +- 3 files changed, 143 insertions(+), 143 deletions(-) diff --git a/i18n/de.i18n.json b/i18n/de.i18n.json index c94ac1d28..86a091ebb 100644 --- a/i18n/de.i18n.json +++ b/i18n/de.i18n.json @@ -1,41 +1,41 @@ { "accept": "Akzeptieren", "act-activity-notify": "Aktivitätsbenachrichtigung", - "act-addAttachment": "hat Anhang __attachment__ zur Karte __card__ auf der Liste __list__ bei Swimlane __swimlane__ an Board __board__ angehängt", - "act-deleteAttachment": "löschte Anhang __attachment__ zur Karte __card__ auf der Liste __list__ bei Swimlane __swimlane__ an Board __board__", - "act-addSubtask": "hat Teilaufgabe __subtask__ zur Karte __card__ auf der Liste __list__ bei Swimlane __swimlane__ an Board angehängt", - "act-addLabel": "hat Label __label__ zur Karte __card__ auf der Liste __list__ bei Swimlane __swimlane__ an Board __board__ angehängt", - "act-addedLabel": "hat Label __label__ zur Karte __card__ auf der Liste __list__ bei Swimlane __swimlane__ an Board __board__ angehängt", - "act-removeLabel": "entfernte Label __label__ zur Karte __card__ auf der Liste __list__ bei Swimlane __swimlane__ an Board __board__", - "act-removedLabel": "entfernte Label __label__ zur Karte __card__ auf der Liste __list__ bei Swimlane __swimlane__ an Board __board__", - "act-addChecklist": "hat Checkliste __checklist__ zur Karte __card__ auf der Liste __list__ bei Swimlane __swimlane__ an Board __board__ angehängt", - "act-addChecklistItem": "hat Checklistenposition __checklistItem__ zu Checkliste __checkList__ zur Karte __card__ auf der Liste __list__ bei Swimlane __swimlane__ an Board __board__ angehängt", - "act-removeChecklist": "entfernt Checkliste __checklist__ zur Karte __card__ auf der Liste __list__ bei Swimlane __swimlane__ an Board __board__", - "act-removeChecklistItem": "entfernt Checklistenposition __checklistItem__ von Checkliste __checkList__ zur Karte __card__ auf der Liste __list__ bei Swimlane __swimlane__ an Board __board__", - "act-checkedItem": "hakte __checklistItem__ von der Checkliste __checklist__ der Karte __card__ auf der Liste __list__ bei Swimlane __swimlane__ an Board __board__ ab", - "act-uncheckedItem": "unabgehakt __checklistItem__ von der Checkliste __checklist__ der Karte __card__ auf der Liste __list__ bei Swimlane __swimlane__ an Board __board__", - "act-completeChecklist": "vervollständigte Checkliste __checklist__ der Karte __card__ auf der Liste __list__ bei Swimlane __swimlane__ an Board __board__", - "act-uncompleteChecklist": "unvollendete Checkliste __checklist__ der Karte __card__ auf der Liste __list__ bei Swimlane __swimlane__ an Board __board__", - "act-addComment": "kommentierte eine Karte __card__: __comment__ auf der Liste __list__ bei Swimlane __swimlane__ an Board __board__", + "act-addAttachment": "hat Anhang __attachment__ zur Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ hinzugefügt", + "act-deleteAttachment": "hat Anhang __attachment__ von Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ gelöscht", + "act-addSubtask": "hat Teilaufgabe __subtask__ zur Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ hinzugefügt", + "act-addLabel": "hat Label __label__ zur Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ hinzugefügt", + "act-addedLabel": "hat Label __label__ zur Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ hinzugefügt", + "act-removeLabel": "hat Label __label__ von Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ entfernt", + "act-removedLabel": "hat Label __label__ von Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ entfernt", + "act-addChecklist": "hat Checkliste __checklist__ zur Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ hinzugefügt", + "act-addChecklistItem": "hat Checklistenposition __checklistItem__ zu Checkliste __checkList__ auf der Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ hinzugefügt", + "act-removeChecklist": "hat Checkliste __checklist__ von Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ entfernt", + "act-removeChecklistItem": "hat Checklistenposition __checklistItem__ von Checkliste __checkList__ auf der Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ entfernt", + "act-checkedItem": "hat __checklistItem__ der Checkliste __checklist__ der Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ abgehakt", + "act-uncheckedItem": "hat Haken von __checklistItem__ der Checkliste __checklist__ der Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ entfernt", + "act-completeChecklist": "hat Checkliste __checklist__ der Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ vervollständigt", + "act-uncompleteChecklist": "hat Checkliste __checklist__ der Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ unvervollständigt", + "act-addComment": "hat Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ kommentiert: __comment__", "act-createBoard": "hat Board __board__ erstellt", - "act-createSwimlane": "erstellte Swimlane __swimlane__ auf Board __board__", - "act-createCard": "erstellte Karte __card__ auf Liste __list__ bei Swimlane __swimlane__ an Board __board__", - "act-createCustomField": "erstellte ein benutzerdefiniertes Feld __customField__ für Karte __card__ auf der Liste __list__ bei Swimlane __swimlane__ an Board __board__", + "act-createSwimlane": "hat Swimlane __swimlane__ in Board __board__ erstellt", + "act-createCard": "hat Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ erstellt", + "act-createCustomField": "hat das benutzerdefinierte Feld __customField__ auf Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ erstellt", "act-createList": "hat Liste __list__ zu Board __board__ hinzugefügt", "act-addBoardMember": "hat Mitglied __member__ zu Board __board__ hinzugefügt", - "act-archivedBoard": "Board __board__ ins Archiv verschoben", - "act-archivedCard": "Karte __card__ auf der Liste __list__ bei Swimlane __swimlane__ von Board __board__ ins Archiv verschoben", - "act-archivedList": "Liste __list__ bei Swimlane __swimlane__ von Board __board__ ins Archiv verschoben", - "act-archivedSwimlane": "Swimlane __swimlane__ von Board __board__ ins Archiv verschoben", - "act-importBoard": "importiert Board __board__", - "act-importCard": "importiert Karte __card__ auf der Liste __list__ bei Swimlane __swimlane__ in Board __board__ ", - "act-importList": "importiert Liste __list__ bei Swimlane __swimlane__ in Board __board__ ", - "act-joinMember": "fügt Mitglied __member__ der Karte __card__ auf der Liste __list__ bei Swimlane __swimlane__ an Board __board__ hinzu", - "act-moveCard": "verschiebt Karte __card__ auf Board __board__ von Liste __oldList__ in Swimlane __oldSwimlane__ zu Liste __list__ in Swimlane __swimlane__", - "act-moveCardToOtherBoard": "verschiebt Karte __card__ von Liste __oldList__ von Swimlane __oldSwimlane__ von Board __oldBoard__ nach Liste __list__ in Swimlane __swimlane__ zu Board __board__", - "act-removeBoardMember": "entfernte Mitglied __member__ vom Board __board__", - "act-restoredCard": "wiederherstellte Karte __card__ auf der Liste __list__ bei Swimlane __swimlane__ an Board __board__", - "act-unjoinMember": "entfernte Mitglied __member__ von Karte __card__ auf der Liste __list__ bei Swimlane __swimlane__ an Board __board__", + "act-archivedBoard": "hat Board __board__ ins Archiv verschoben", + "act-archivedCard": "hat Karte __card__ von der Liste __list__ in Swimlane __swimlane__ in Board __board__ ins Archiv verschoben", + "act-archivedList": "hat Liste __list__ in Swimlane __swimlane__ in Board __board__ ins Archiv verschoben", + "act-archivedSwimlane": "hat Swimlane __swimlane__ von Board __board__ ins Archiv verschoben", + "act-importBoard": "hat Board __board__ importiert", + "act-importCard": "hat Karte __card__ in Liste __list__ in Swimlane __swimlane__ in Board __board__ importiert", + "act-importList": "hat Liste __list__ in Swimlane __swimlane__ in Board __board__ importiert", + "act-joinMember": "hat Mitglied __member__ zur Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ hinzugefügt", + "act-moveCard": "hat Karte __card__ in Board __board__ von Liste __oldList__ in Swimlane __oldSwimlane__ zu Liste __list__ in Swimlane __swimlane__ verschoben", + "act-moveCardToOtherBoard": "hat Karte __card__ von Liste __oldList__ in Swimlane __oldSwimlane__ in Board __oldBoard__ zu Liste __list__ in Swimlane __swimlane__ in Board __board__ verschoben", + "act-removeBoardMember": "hat Mitglied __member__ von Board __board__ entfernt", + "act-restoredCard": "hat Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ wiederhergestellt", + "act-unjoinMember": "hat Mitglied __member__ von Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ entfernt", "act-withBoardTitle": "__board__", "act-withCardTitle": "[__board__] __card__", "actions": "Aktionen", @@ -60,14 +60,14 @@ "activity-unchecked-item": "hat %s in Checkliste %s von %s abgewählt", "activity-checklist-added": "hat eine Checkliste zu %s hinzugefügt", "activity-checklist-removed": "entfernte eine Checkliste von %s", - "activity-checklist-completed": "vervollständigte Checkliste __checklist__ der Karte __card__ auf der Liste __list__ bei Swimlane __swimlane__ an Board __board__", + "activity-checklist-completed": "hat Checkliste __checklist__ der Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ vervollständigt", "activity-checklist-uncompleted": "unvervollständigte die Checkliste %s von %s", "activity-checklist-item-added": "hat ein Checklistenelement zu '%s' in %s hinzugefügt", "activity-checklist-item-removed": "hat ein Checklistenelement von '%s' in %s entfernt", "add": "Hinzufügen", "activity-checked-item-card": "markiere %s in Checkliste %s", "activity-unchecked-item-card": "hat %s in Checkliste %s abgewählt", - "activity-checklist-completed-card": "vervollständigte Checkliste __checklist__ der Karte __card__ auf der Liste __list__ bei Swimlane __swimlane__ an Board __board__", + "activity-checklist-completed-card": "hat Checkliste __checklist__ der Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ vervollständigt", "activity-checklist-uncompleted-card": "unvervollständigte die Checkliste %s", "add-attachment": "Datei anhängen", "add-board": "neues Board", diff --git a/i18n/mk.i18n.json b/i18n/mk.i18n.json index 5fd29479f..10489c66c 100644 --- a/i18n/mk.i18n.json +++ b/i18n/mk.i18n.json @@ -1,5 +1,5 @@ { - "accept": "Приемам", + "accept": "Прифати", "act-activity-notify": "Activity Notification", "act-addAttachment": "added attachment __attachment__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", @@ -38,11 +38,11 @@ "act-unjoinMember": "removed member __member__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "act-withBoardTitle": "__board__", "act-withCardTitle": "[__board__] __card__", - "actions": "Действия", - "activities": "Действия", - "activity": "Дейности", + "actions": "Акции", + "activities": "Активности", + "activity": "Активност", "activity-added": "добави %s към %s", - "activity-archived": "%s е преместена в Архива", + "activity-archived": "%s е преместена во Архива", "activity-attached": "прикачи %s към %s", "activity-created": "създаде %s", "activity-customfield-created": "създаде собствено поле %s", @@ -69,56 +69,56 @@ "activity-unchecked-item-card": "размаркира %s в чеклист %s", "activity-checklist-completed-card": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__", "activity-checklist-uncompleted-card": "\"отзавърши\" чеклистта %s", - "add-attachment": "Добави прикачен файл", - "add-board": "Добави Табло", - "add-card": "Добави карта", - "add-swimlane": "Добави коридор", - "add-subtask": "Добави подзадача", - "add-checklist": "Добави списък със задачи", - "add-checklist-item": "Добави точка към списъка със задачи", - "add-cover": "Добави корица", - "add-label": "Добави етикет", - "add-list": "Добави списък", - "add-members": "Добави членове", - "added": "Добавено", - "addMemberPopup-title": "Членове", + "add-attachment": "Додај прилог", + "add-board": "Додади Табла", + "add-card": "Додади Картичка", + "add-swimlane": "Додади Коридор", + "add-subtask": "Додади подзадача", + "add-checklist": "Додади список на задачи", + "add-checklist-item": "Додади точка во списокот со задачи", + "add-cover": "Додади корица", + "add-label": "Додади етикета", + "add-list": "Додади листа", + "add-members": "Додави членови", + "added": "Додадено", + "addMemberPopup-title": "Членови", "admin": "Администратор", "admin-desc": "Can view and edit cards, remove members, and change settings for the board.", "admin-announcement": "Съобщение", "admin-announcement-active": "Active System-Wide Announcement", - "admin-announcement-title": "Съобщение от администратора", - "all-boards": "Всички табла", - "and-n-other-card": "И __count__ друга карта", - "and-n-other-card_plural": "И __count__ други карти", + "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", "apply": "Приложи", "app-is-offline": "Loading, please wait. Refreshing the page will cause data loss. If loading does not work, please check that server has not stopped.", - "archive": "Премести в Архива", - "archive-all": "Премести всички в Архива", - "archive-board": "Премести Таблото в Архива", - "archive-card": "Премести Картата в Архива", - "archive-list": "Премести Списъка в Архива", - "archive-swimlane": "Премести Коридора в Архива", - "archive-selection": "Премести избраното в Архива", - "archiveBoardPopup-title": "Да преместя ли Таблото в Архива?", - "archived-items": "Архив", - "archived-boards": "Табла в Архива", + "archive": "Премести во Архива", + "archive-all": "Премести всички во Архива", + "archive-board": "Премести Таблото во Архива", + "archive-card": "Премести Картата во Архива", + "archive-list": "Премести Списъка во Архива", + "archive-swimlane": "Премести Коридора во Архива", + "archive-selection": "Премести избраното во Архива", + "archiveBoardPopup-title": "Да преместя ли Таблото во Архива?", + "archived-items": "Архива", + "archived-boards": "Табла во Архива", "restore-board": "Възстанови Таблото", - "no-archived-boards": "Няма Табла в Архива.", - "archives": "Архив", + "no-archived-boards": "Няма Табла во Архива.", + "archives": "Архива", "template": "Template", "templates": "Templates", "assign-member": "Възложи на член от екипа", "attached": "прикачен", - "attachment": "Прикаченн файл", - "attachment-delete-pop": "Изтриването на прикачен файл е завинаги. Няма как да бъде възстановен.", - "attachmentDeletePopup-title": "Желаете ли да изтриете прикачения файл?", - "attachments": "Прикачени файлове", + "attachment": "Прикаченн датотека", + "attachment-delete-pop": "Изтриването на прикачен датотека е завинаги. Няма как да бъде възстановен.", + "attachmentDeletePopup-title": "Желаете ли да изтриете прикачения датотека?", + "attachments": "Прикачени датотеки", "auto-watch": "Автоматично наблюдаване на таблата, когато са създадени", "avatar-too-big": "Аватарът е прекалено голям (максимум 70KB)", "back": "Назад", - "board-change-color": "Промени цвета", + "board-change-color": "Промени боја", "board-nb-stars": "%s звезди", - "board-not-found": "Таблото не е намерено", + "board-not-found": "Таблото не е најдено", "board-private-info": "This board will be private.", "board-public-info": "This board will be public.", "boardChangeColorPopup-title": "Change Board Background", @@ -126,69 +126,69 @@ "boardChangeVisibilityPopup-title": "Change Visibility", "boardChangeWatchPopup-title": "Промени наблюдаването", "boardMenuPopup-title": "Board Settings", - "boards": "Табла", + "boards": "Табли", "board-view": "Board View", "board-view-cal": "Календар", "board-view-swimlanes": "Коридори", - "board-view-lists": "Списъци", + "board-view-lists": "Листи", "bucket-example": "Like “Bucket List” for example", - "cancel": "Cancel", - "card-archived": "Тази карта е преместена в Архива.", - "board-archived": "Това табло е преместено в Архива.", + "cancel": "Откажи", + "card-archived": "Тази карта е преместена во Архива.", + "board-archived": "Това табло е преместено во Архива.", "card-comments-title": "Тази карта има %s коментар.", "card-delete-notice": "Deleting is permanent. You will lose all actions associated with this card.", "card-delete-pop": "All actions will be removed from the activity feed and you won't be able to re-open the card. There is no undo.", - "card-delete-suggest-archive": "Можете да преместите картата в Архива, за да я премахнете от Таблото и така да запазите активността в него.", + "card-delete-suggest-archive": "Можете да преместите картата во Архива, за да я премахнете от Таблото и така да запазите активността в него.", "card-due": "Готова за", "card-due-on": "Готова за", "card-spent": "Изработено време", - "card-edit-attachments": "Промени прикачените файлове", + "card-edit-attachments": "Промени прикачените датотеки", "card-edit-custom-fields": "Промени собствените полета", "card-edit-labels": "Промени етикетите", "card-edit-members": "Промени членовете", "card-labels-title": "Промени етикетите за картата.", "card-members-title": "Добави или премахни членове на Таблото от тази карта.", - "card-start": "Начало", - "card-start-on": "Започва на", + "card-start": "Започнува", + "card-start-on": "Започнува на", "cardAttachmentsPopup-title": "Прикачи от", "cardCustomField-datePopup-title": "Промени датата", "cardCustomFieldsPopup-title": "Промени собствените полета", "cardDeletePopup-title": "Желаете да изтриете картата?", "cardDetailsActionsPopup-title": "Опции", "cardLabelsPopup-title": "Етикети", - "cardMembersPopup-title": "Членове", - "cardMorePopup-title": "Още", + "cardMembersPopup-title": "Членови", + "cardMorePopup-title": "Повеќе", "cardTemplatePopup-title": "Create template", - "cards": "Карти", - "cards-count": "Карти", + "cards": "Картички", + "cards-count": "Картички", "casSignIn": "Sign In with CAS", "cardType-card": "Карта", - "cardType-linkedCard": "Свързана карта", + "cardType-linkedCard": "Поврзана карта", "cardType-linkedBoard": "Свързано табло", "change": "Промени", "change-avatar": "Промени аватара", - "change-password": "Промени паролата", - "change-permissions": "Промени правата", - "change-settings": "Промени настройките", - "changeAvatarPopup-title": "Промени аватара", - "changeLanguagePopup-title": "Промени езика", - "changePasswordPopup-title": "Промени паролата", - "changePermissionsPopup-title": "Промени правата", - "changeSettingsPopup-title": "Промяна на настройките", + "change-password": "Промени лозинка", + "change-permissions": "Промени права", + "change-settings": "Промени параметри", + "changeAvatarPopup-title": "Промени аватар", + "changeLanguagePopup-title": "Промени јазик", + "changePasswordPopup-title": "Промени лозинка", + "changePermissionsPopup-title": "Промени права", + "changeSettingsPopup-title": "Промени параметри", "subtasks": "Подзадачи", "checklists": "Списъци със задачи", "click-to-star": "Click to star this board.", "click-to-unstar": "Натиснете, за да премахнете това табло от любими.", "clipboard": "Клипборда или с драг & дроп", "close": "Затвори", - "close-board": "Затвори Таблото", - "close-board-pop": "Ще можете да възстановите Таблото като натиснете на бутона \"Архив\" в началото на хедъра.", - "color-black": "черно", - "color-blue": "синьо", + "close-board": "Затвори Табла", + "close-board-pop": "Ще можете да възстановите Таблото като натиснете на бутона \"Архива\" в началото на хедъра.", + "color-black": "црно", + "color-blue": "сино", "color-crimson": "crimson", "color-darkgreen": "darkgreen", - "color-gold": "gold", - "color-gray": "gray", + "color-gold": "златно", + "color-gray": "сиво", "color-green": "зелено", "color-indigo": "indigo", "color-lime": "лайм", @@ -209,28 +209,28 @@ "color-white": "бяло", "color-yellow": "жълто", "unset-color": "Unset", - "comment": "Коментирай", + "comment": "Коментирај", "comment-placeholder": "Напиши коментар", - "comment-only": "Само коментар", + "comment-only": "Само коментари", "comment-only-desc": "Може да коментира само в карти.", - "no-comments": "Няма коментари", + "no-comments": "Нема коментари", "no-comments-desc": "Can not see comments and activities.", - "computer": "Компютър", - "confirm-subtask-delete-dialog": "Сигурен ли сте, че искате да изтриете подзадачата?", - "confirm-checklist-delete-dialog": "Сигурни ли сте, че искате да изтриете този чеклист?", + "computer": "Компјутер", + "confirm-subtask-delete-dialog": "Сигурен ли сте, дека сакате да изтриете подзадачата?", + "confirm-checklist-delete-dialog": "Сигурни ли сте, дека сакате да изтриете този чеклист?", "copy-card-link-to-clipboard": "Копирай връзката на картата в клипборда", - "linkCardPopup-title": "Свържи картата", - "searchElementPopup-title": "Търсене", - "copyCardPopup-title": "Копирай картата", + "linkCardPopup-title": "Поврзи картичка", + "searchElementPopup-title": "Барај", + "copyCardPopup-title": "Копирај картичка", "copyChecklistToManyCardsPopup-title": "Копирай чеклисти в други карти", "copyChecklistToManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format", "copyChecklistToManyCardsPopup-format": "[ {\"title\": \"First card title\", \"description\":\"First card description\"}, {\"title\":\"Second card title\",\"description\":\"Second card description\"},{\"title\":\"Last card title\",\"description\":\"Last card description\"} ]", - "create": "Създай", - "createBoardPopup-title": "Създай Табло", + "create": "Креирај", + "createBoardPopup-title": "Креирај Табло", "chooseBoardSourcePopup-title": "Импортирай Табло", - "createLabelPopup-title": "Създай Табло", - "createCustomField": "Създай Поле", - "createCustomFieldPopup-title": "Създай Поле", + "createLabelPopup-title": "Креирај Табло", + "createCustomField": "Креирај Поле", + "createCustomFieldPopup-title": "Креирај Поле", "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": "Чекбокс", @@ -240,13 +240,13 @@ "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": "Номер", + "custom-field-number": "Број", "custom-field-text": "Текст", "custom-fields": "Собствени полета", "date": "Дата", - "decline": "Отказ", + "decline": "Откажи", "default-avatar": "Основен аватар", - "delete": "Изтрий", + "delete": "Избриши", "deleteCustomFieldPopup-title": "Изтриване на Собственото поле?", "deleteLabelPopup-title": "Желаете да изтриете етикета?", "description": "Описание", @@ -272,8 +272,8 @@ "email-enrollAccount-text": "Hello __user__,\n\nTo start using the service, simply click the link below.\n\n__url__\n\nThanks.", "email-fail": "Неуспешно изпращане на имейла", "email-fail-text": "Възникна грешка при изпращането на имейла", - "email-invalid": "Невалиден имейл", - "email-invite": "Покани чрез имейл", + "email-invalid": "Невалиден е-маил", + "email-invite": "Покани чрез е-маил", "email-invite-subject": "__inviter__ sent you an invitation", "email-invite-text": "Dear __user__,\n\n__inviter__ invites you to join board \"__board__\" for collaborations.\n\nPlease follow the link below:\n\n__url__\n\nThanks.", "email-resetPassword-subject": "Reset your password on __siteName__", @@ -294,7 +294,7 @@ "error-username-taken": "Това потребителско име е вече заето", "error-email-taken": "Имейлът е вече зает", "export-board": "Експортиране на Табло", - "filter": "Филтър", + "filter": "Филтер", "filter-cards": "Филтрирай картите", "filter-clear": "Премахване на филтрите", "filter-no-label": "без етикет", @@ -303,15 +303,15 @@ "filter-on": "Има приложени филтри", "filter-on-desc": "В момента филтрирате картите в това табло. Моля, натиснете тук, за да промените филтъра.", "filter-to-selection": "Филтрирай избраните", - "advanced-filter-label": "Advanced Filter", + "advanced-filter-label": "Напреден филтер", "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i", "fullname": "Име", "header-logo-title": "Назад към страницата с Вашите табла.", "hide-system-messages": "Скриване на системните съобщения", - "headerBarCreateBoardPopup-title": "Създай Табло", - "home": "Начало", + "headerBarCreateBoardPopup-title": "Креирај Табло", + "home": "Почетна", "import": "Импорт", - "link": "Връзка", + "link": "Врска", "import-board": "Импортирай Табло", "import-board-c": "Импортирай Табло", "import-board-title-trello": "Импорт на табло от Trello", @@ -337,7 +337,7 @@ "joined": "присъедини", "just-invited": "Бяхте поканени в това табло", "keyboard-shortcuts": "Преки пътища с клавиатурата", - "label-create": "Създай етикет", + "label-create": "Креирај етикет", "label-default": "%s етикет (по подразбиране)", "label-delete-pop": "There is no undo. This will remove this label from all cards and destroy its history.", "labels": "Етикети", @@ -347,8 +347,8 @@ "leave-board-pop": "Are you sure you want to leave __boardTitle__? You will be removed from all cards on this board.", "leaveBoardPopup-title": "Leave Board ?", "link-card": "Връзка към тази карта", - "list-archive-cards": "Премести всички карти от този списък в Архива", - "list-archive-cards-pop": "Това ще премахне всички карти от този Списък от Таблото. За да видите картите в Архива и да ги върнете натиснете на \"Меню\" > \"Архив\".", + "list-archive-cards": "Премести всички карти от този списък во Архива", + "list-archive-cards-pop": "Това ще премахне всички карти от този Списък от Таблото. За да видите картите во Архива и да ги върнете натиснете на \"Меню\" > \"Архива\".", "list-move-cards": "Премести всички карти в този списък", "list-select-cards": "Избери всички карти в този списък", "set-color-list": "Set Color", @@ -359,7 +359,7 @@ "listMorePopup-title": "Още", "link-list": "Връзка към този списък", "list-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the list. There is no undo.", - "list-delete-suggest-archive": "Можете да преместите списъка в Архива, за да го премахнете от Таблото и така да запазите активността в него.", + "list-delete-suggest-archive": "Можете да преместите списъка во Архива, за да го премахнете от Таблото и така да запазите активността в него.", "lists": "Списъци", "swimlanes": "Коридори", "log-out": "Изход", @@ -379,9 +379,9 @@ "muted-info": "You will never be notified of any changes in this board", "my-boards": "Моите табла", "name": "Име", - "no-archived-cards": "Няма карти в Архива.", - "no-archived-lists": "Няма списъци в Архива.", - "no-archived-swimlanes": "Няма коридори в Архива.", + "no-archived-cards": "Няма карти во Архива.", + "no-archived-lists": "Няма списъци во Архива.", + "no-archived-swimlanes": "Няма коридори во Архива.", "no-results": "No results", "normal": "Normal", "normal-desc": "Can view and edit cards. Can't change settings.", @@ -401,7 +401,7 @@ "private": "Private", "private-desc": "This board is private. Only people added to the board can view and edit it.", "profile": "Профил", - "public": "Public", + "public": "Јавна", "public-desc": "This board is public. It's visible to anyone with the link and will show up in search engines like Google. Only people added to the board can edit.", "quick-access-description": "Star a board to add a shortcut in this bar.", "remove-cover": "Remove Cover", @@ -461,7 +461,7 @@ "uploaded-avatar": "Качихте аватар", "username": "Потребителско име", "view-it": "View it", - "warn-list-archived": "внимание: тази карта е в списък в Архива", + "warn-list-archived": "внимание: тази карта е в списък во Архива", "watch": "Наблюдавай", "watching": "Наблюдава", "watching-info": "You will be notified of any change in this board", @@ -494,12 +494,12 @@ "smtp-password": "Парола", "smtp-tls": "TLS поддръжка", "send-from": "От", - "send-smtp-test": "Изпрати тестов имейл на себе си", + "send-smtp-test": "Изпрати тестов е-маил на себе си", "invitation-code": "Invitation Code", "email-invite-register-subject": "__inviter__ sent you an invitation", "email-invite-register-text": "Dear __user__,\n\n__inviter__ invites you to kanban board for collaborations.\n\nPlease follow the link below:\n__url__\n\nAnd your invitation code is: __icode__\n\nThanks.", "email-smtp-test-subject": "SMTP Test Email", - "email-smtp-test-text": "Успешно изпратихте имейл", + "email-smtp-test-text": "Успешно изпратихте е-маил", "error-invitation-code-not-exist": "Invitation code doesn't exist", "error-notAuthorized": "You are not authorized to view this page.", "outgoing-webhooks": "Outgoing Webhooks", @@ -567,10 +567,10 @@ "no-parent": "Не показвай източника", "activity-added-label": "добави етикет '%s' към %s", "activity-removed-label": "премахна етикет '%s' от %s", - "activity-delete-attach": "изтри прикачен файл от %s", + "activity-delete-attach": "изтри прикачен датотека от %s", "activity-added-label-card": "добави етикет '%s'", "activity-removed-label-card": "премахна етикет '%s'", - "activity-delete-attach-card": "изтри прикачения файл", + "activity-delete-attach-card": "изтри прикачения датотека", "activity-set-customfield": "set custom field '%s' to '%s' in %s", "activity-unset-customfield": "unset custom field '%s' in %s", "r-rule": "Правило", @@ -592,7 +592,7 @@ "set-filter": "Set Filter", "r-moved-to": "Moved to", "r-moved-from": "Moved from", - "r-archived": "Преместено в Архива", + "r-archived": "Преместено во Архива", "r-unarchived": "Възстановено от Архива", "r-a-card": "карта", "r-when-a-label-is": "When a label is", @@ -614,7 +614,7 @@ "r-top-of": "началото на", "r-bottom-of": "края на", "r-its-list": "списъка й", - "r-archive": "Премести в Архива", + "r-archive": "Премести во Архива", "r-unarchive": "Възстанови от Архива", "r-card": "карта", "r-add": "Добави", @@ -643,7 +643,7 @@ "r-d-send-email-to": "to", "r-d-send-email-subject": "subject", "r-d-send-email-message": "message", - "r-d-archive": "Премести картата в Архива", + "r-d-archive": "Премести картата во Архива", "r-d-unarchive": "Възстанови картата от Архива", "r-d-add-label": "Add label", "r-d-remove-label": "Remove label", diff --git a/i18n/ru.i18n.json b/i18n/ru.i18n.json index 4d163ddf3..c677bd879 100644 --- a/i18n/ru.i18n.json +++ b/i18n/ru.i18n.json @@ -18,7 +18,7 @@ "act-uncompleteChecklist": "вновь открыл контрольный список __checklist__ в карточке __card__ в списке __list__ на дорожке __swimlane__ доски __board__", "act-addComment": "написал в карточке __card__: __comment__ в списке __list__ на дорожке __swimlane__ доски __board__", "act-createBoard": "создал доску __board__", - "act-createSwimlane": "created swimlane __swimlane__ to board __board__", + "act-createSwimlane": "создал дорожку __swimlane__ на доске __board__", "act-createCard": "создал карточку __card__ в списке __list__ на дорожке __swimlane__ доски __board__", "act-createCustomField": "создал поле __customField__ в карточке __card__ в списке __list__ на дорожке __swimlane__ доски __board__\n", "act-createList": "добавил список __list__ на доску __board__", From 088ec7fd949db38dcf0cacce5e2aa05f4e9fd345 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Fri, 29 Mar 2019 14:39:35 +0200 Subject: [PATCH 24/54] [Add proper variables for join card](https://github.com/wekan/wekan/commit/289f1fe1340c85eb2af19825f4972e9057a86b7a), fixes [Incorrect variable replacement on email notifications](https://github.com/wekan/wekan/issues/2295). Thanks to justinr1234 ! Closes #2295 --- CHANGELOG.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c6878ab9d..2776ea2a2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,12 @@ # Upcoming Wekan release -This release reverts the following fixes: +This release fixes the following bugs: + +- [Add proper variables for join card](https://github.com/wekan/wekan/commit/289f1fe1340c85eb2af19825f4972e9057a86b7a), + fixes [Incorrect variable replacement on email notifications](https://github.com/wekan/wekan/issues/2295). + Thanks to justinr1234. + +and reverts the following fixes: - [Revert spinner etc fixes of Wekan v2.56, because of some new bugs](https://github.com/wekan/wekan/issues/2250). Thanks to gerroon. From 4b181620d8f73fa1c91f0c0c73f267b39ae9168d Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 30 Mar 2019 14:30:04 +0200 Subject: [PATCH 25/54] Added nodejs to install dependencies. Thanks to xet7 ! --- rebuild-wekan.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/rebuild-wekan.sh b/rebuild-wekan.sh index f712d31cf..380f930ce 100755 --- a/rebuild-wekan.sh +++ b/rebuild-wekan.sh @@ -74,6 +74,7 @@ do # Debian, Ubuntu, Mint sudo apt-get install -y build-essential git curl wget curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash - + sudo apt-get install -y nodejs elif [[ "$OSTYPE" == "darwin"* ]]; then echo "macOS"; pause '1) Install XCode 2) Install Node 8.x from https://nodejs.org/en/ 3) Press [Enter] key to continue.' From 289e3d6286b5cfa22e7fd6fd58f47d902bd0fbe3 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 30 Mar 2019 14:34:32 +0200 Subject: [PATCH 26/54] More deps. --- rebuild-wekan.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rebuild-wekan.sh b/rebuild-wekan.sh index 380f930ce..212549181 100755 --- a/rebuild-wekan.sh +++ b/rebuild-wekan.sh @@ -72,7 +72,7 @@ do if [[ "$OSTYPE" == "linux-gnu" ]]; then echo "Linux"; # Debian, Ubuntu, Mint - sudo apt-get install -y build-essential git curl wget + sudo apt-get install -y build-essential gcc g++ make git curl wget curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash - sudo apt-get install -y nodejs elif [[ "$OSTYPE" == "darwin"* ]]; then From a80cd455defd71f2ac67fd5e008415e3785b761a Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 30 Mar 2019 19:06:09 +0200 Subject: [PATCH 27/54] - [Add back zoom fixes of #2250](https://github.com/wekan/wekan/issues/2250). Thanks to xet7 ! --- CHANGELOG.md | 5 -- client/components/lists/listBody.jade | 19 +++--- client/components/lists/listBody.js | 89 ++++++++++++--------------- 3 files changed, 51 insertions(+), 62 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2776ea2a2..8dda97be6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,11 +6,6 @@ This release fixes the following bugs: fixes [Incorrect variable replacement on email notifications](https://github.com/wekan/wekan/issues/2295). Thanks to justinr1234. -and reverts the following fixes: - -- [Revert spinner etc fixes of Wekan v2.56, because of some new bugs](https://github.com/wekan/wekan/issues/2250). - Thanks to gerroon. - Thanks to above GitHub users for their contributions and translators for their translations. # v2.56 2019-03-27 Wekan release diff --git a/client/components/lists/listBody.jade b/client/components/lists/listBody.jade index 876b43d63..61fec93ad 100644 --- a/client/components/lists/listBody.jade +++ b/client/components/lists/listBody.jade @@ -13,14 +13,7 @@ template(name="listBody") class="{{#if MultiSelection.isSelected _id}}is-checked{{/if}}") +minicard(this) if (showSpinner (idOrNull ../../_id)) - .sk-spinner.sk-spinner-wave.sk-spinner-list( - class=currentBoard.colorClass - id="showMoreResults") - .sk-rect1 - .sk-rect2 - .sk-rect3 - .sk-rect4 - .sk-rect5 + +spinnerList if canSeeAddCard +inlinedForm(autoclose=false position="bottom") @@ -30,6 +23,16 @@ template(name="listBody") i.fa.fa-plus | {{_ 'add-card'}} +template(name="spinnerList") + .sk-spinner.sk-spinner-wave.sk-spinner-list( + class=currentBoard.colorClass + id="showMoreResults") + .sk-rect1 + .sk-rect2 + .sk-rect3 + .sk-rect4 + .sk-rect5 + template(name="addCardForm") .minicard.minicard-composer.js-composer if getLabels diff --git a/client/components/lists/listBody.js b/client/components/lists/listBody.js index 7d7670110..112b63796 100644 --- a/client/components/lists/listBody.js +++ b/client/components/lists/listBody.js @@ -7,28 +7,6 @@ BlazeComponent.extendComponent({ this.cardlimit = new ReactiveVar(InfiniteScrollIter); }, - onRendered() { - const domElement = this.find('.js-perfect-scrollbar'); - - this.$(domElement).on('scroll', () => this.updateList(domElement)); - $(window).on(`resize.${this.data().listId}`, () => this.updateList(domElement)); - - // we add a Mutation Observer to allow propagations of cardlimit - // when the spinner stays in the current view (infinite scrolling) - this.mutationObserver = new MutationObserver(() => this.updateList(domElement)); - - this.mutationObserver.observe(domElement, { - childList: true, - }); - - this.updateList(domElement); - }, - - onDestroyed() { - $(window).off(`resize.${this.data().listId}`); - this.mutationObserver.disconnect(); - }, - mixins() { return [Mixins.PerfectScrollbar]; }, @@ -191,38 +169,11 @@ BlazeComponent.extendComponent({ }); }, - spinnerInView(container) { - const parentViewHeight = container.clientHeight; - const bottomViewPosition = container.scrollTop + parentViewHeight; - - const spinner = this.find('.sk-spinner-list'); - - const threshold = spinner.offsetTop; - - return bottomViewPosition > threshold; - }, - showSpinner(swimlaneId) { const list = Template.currentData(); return list.cards(swimlaneId).count() > this.cardlimit.get(); }, - updateList(container) { - // first, if the spinner is not rendered, we have reached the end of - // the list of cards, so skip and disable firing the events - const target = this.find('.sk-spinner-list'); - if (!target) { - this.$(container).off('scroll'); - $(window).off(`resize.${this.data().listId}`); - return; - } - - if (this.spinnerInView(container)) { - this.cardlimit.set(this.cardlimit.get() + InfiniteScrollIter); - Ps.update(container); - } - }, - canSeeAddCard() { return !this.reachedWipLimit() && Meteor.user() && Meteor.user().isBoardMember() && !Meteor.user().isCommentOnly(); }, @@ -661,3 +612,43 @@ BlazeComponent.extendComponent({ }]; }, }).register('searchElementPopup'); + +BlazeComponent.extendComponent({ + onCreated() { + this.spinnerShown = false; + this.cardlimit = this.parentComponent().cardlimit; + }, + + onRendered() { + const spinner = this.find('.sk-spinner-list'); + + if (spinner) { + const options = { + root: null, // we check if the spinner is on the current viewport + rootMargin: '0px', + threshold: 0.25, + }; + + this.observer = new IntersectionObserver((entries) => { + entries.forEach((entry) => { + this.spinnerShown = entry.isIntersecting; + this.updateList(); + }); + }, options); + + this.observer.observe(spinner); + } + }, + + onDestroyed() { + this.observer.disconnect(); + }, + + updateList() { + if (this.spinnerShown) { + this.cardlimit.set(this.cardlimit.get() + InfiniteScrollIter); + window.requestIdleCallback(() => this.updateList()); + } + }, + +}).register('spinnerList'); From 261754f18b8a5e6e6eedf39d6f6b143a752b0588 Mon Sep 17 00:00:00 2001 From: Benjamin Tissoires Date: Mon, 1 Apr 2019 23:35:12 +0200 Subject: [PATCH 28/54] list: do not use IntersectionObserver to reduce CPU usage Switch back to a custom spinner detection, as the IntersectionObserver is eating a lot of CPU resources on idle. This should also take care of #2250 properly: the previous `onDestroyed()` was removing the resize and scroll callbacks, but they were not unique enough, and they were shared across swimlanes. So if a list had 2 swimlanes with spinners, when one was removed, the other was not triggering its callbacks anymore. Related: #2294 --- client/components/lists/listBody.js | 48 +++++++++++++++++------------ 1 file changed, 29 insertions(+), 19 deletions(-) diff --git a/client/components/lists/listBody.js b/client/components/lists/listBody.js index 112b63796..43619890d 100644 --- a/client/components/lists/listBody.js +++ b/client/components/lists/listBody.js @@ -615,40 +615,50 @@ BlazeComponent.extendComponent({ BlazeComponent.extendComponent({ onCreated() { - this.spinnerShown = false; this.cardlimit = this.parentComponent().cardlimit; + + this.listId = this.parentComponent().data()._id; + this.swimlaneId = ''; + + const boardView = Meteor.user().profile.boardView; + if (boardView === 'board-view-swimlanes') + this.swimlaneId = this.parentComponent().parentComponent().parentComponent().data()._id; }, onRendered() { - const spinner = this.find('.sk-spinner-list'); + this.spinner = this.find('.sk-spinner-list'); + this.container = this.$(this.spinner).parents('.js-perfect-scrollbar')[0]; - if (spinner) { - const options = { - root: null, // we check if the spinner is on the current viewport - rootMargin: '0px', - threshold: 0.25, - }; + $(this.container).on(`scroll.spinner_${this.swimlaneId}_${this.listId}`, () => this.updateList()); + $(window).on(`resize.spinner_${this.swimlaneId}_${this.listId}`, () => this.updateList()); - this.observer = new IntersectionObserver((entries) => { - entries.forEach((entry) => { - this.spinnerShown = entry.isIntersecting; - this.updateList(); - }); - }, options); - - this.observer.observe(spinner); - } + this.updateList(); }, onDestroyed() { - this.observer.disconnect(); + $(this.container).off(`scroll.spinner_${this.swimlaneId}_${this.listId}`); + $(window).off(`resize.spinner_${this.swimlaneId}_${this.listId}`); }, updateList() { - if (this.spinnerShown) { + if (this.spinnerInView()) { this.cardlimit.set(this.cardlimit.get() + InfiniteScrollIter); window.requestIdleCallback(() => this.updateList()); } }, + spinnerInView() { + const parentViewHeight = this.container.clientHeight; + const bottomViewPosition = this.container.scrollTop + parentViewHeight; + + const threshold = this.spinner.offsetTop; + + // spinner deleted + if (!this.spinner.offsetTop) { + return false; + } + + return bottomViewPosition > threshold; + }, + }).register('spinnerList'); From 678bef23600ab8cc13e4fa6929a9cdb7806dc927 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Tue, 2 Apr 2019 15:19:21 +0300 Subject: [PATCH 29/54] Update changelog. --- CHANGELOG.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8dda97be6..d2c1cc92c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,10 +1,13 @@ # Upcoming Wekan release -This release fixes the following bugs: +This release fixes the following bugs, thanks to justinr1234: - [Add proper variables for join card](https://github.com/wekan/wekan/commit/289f1fe1340c85eb2af19825f4972e9057a86b7a), fixes [Incorrect variable replacement on email notifications](https://github.com/wekan/wekan/issues/2295). - Thanks to justinr1234. + +and fixes the following bugs with Apache I-CLA, thanks to bentiss: + +- [List: Do not use IntersectionObserver to reduce CPU usage](https://github.com/wekan/wekan/pull/2302). Thanks to above GitHub users for their contributions and translators for their translations. From 9f5ffde2dd8d1fe6b5ebd1d7d2f3294d7f206bd8 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Tue, 2 Apr 2019 15:26:40 +0300 Subject: [PATCH 30/54] v2.57 --- CHANGELOG.md | 2 +- Stackerfile.yml | 2 +- package.json | 2 +- sandstorm-pkgdef.capnp | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d2c1cc92c..bdfbba1cd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -# Upcoming Wekan release +# v2.57 2019-04-02 Wekan release This release fixes the following bugs, thanks to justinr1234: diff --git a/Stackerfile.yml b/Stackerfile.yml index c4160e28d..0b53ab880 100644 --- a/Stackerfile.yml +++ b/Stackerfile.yml @@ -1,5 +1,5 @@ appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928 -appVersion: "v2.56.0" +appVersion: "v2.57.0" files: userUploads: - README.md diff --git a/package.json b/package.json index b9ae427ac..690b5cc33 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v2.56.0", + "version": "v2.57.0", "description": "Open-Source kanban", "private": true, "scripts": { diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp index 61b19d346..7a3b55d80 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 = 258, + appVersion = 259, # Increment this for every release. - appMarketingVersion = (defaultText = "2.56.0~2019-03-27"), + appMarketingVersion = (defaultText = "2.57.0~2019-04-02"), # Human-readable presentation of the app version. minUpgradableAppVersion = 0, From dfc4ab6dd87cd9af40da163657482f377c9c4f48 Mon Sep 17 00:00:00 2001 From: fossabot Date: Tue, 2 Apr 2019 06:32:34 -0700 Subject: [PATCH 31/54] Add license scan report and status Signed-off-by: fossabot --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 075cda828..324d310b0 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,7 @@ [![Code Climate](https://codeclimate.com/github/wekan/wekan/badges/gpa.svg "Code Climate")](https://codeclimate.com/github/wekan/wekan) [![Project Dependencies](https://david-dm.org/wekan/wekan.svg "Project Dependencies")](https://david-dm.org/wekan/wekan) [![Code analysis at Open Hub](https://img.shields.io/badge/code%20analysis-at%20Open%20Hub-brightgreen.svg "Code analysis at Open Hub")](https://www.openhub.net/p/wekan) +[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fwekan%2Fwekan.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fwekan%2Fwekan?ref=badge_shield) ## [Translate Wekan at Transifex](https://transifex.com/wekan/wekan) @@ -133,3 +134,6 @@ with [Meteor](https://www.meteor.com). [free_software]: https://en.wikipedia.org/wiki/Free_software [vanila_badge]: https://vanila.io/img/join-chat-button2.png [wekan_chat]: https://community.vanila.io/wekan + + +[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fwekan%2Fwekan.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fwekan%2Fwekan?ref=badge_large) \ No newline at end of file From a974ec9dee6fa376467d7db0f92fd9d3e4cc4e6d Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Thu, 4 Apr 2019 20:22:25 +0300 Subject: [PATCH 32/54] Update translations. --- i18n/de.i18n.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/i18n/de.i18n.json b/i18n/de.i18n.json index 86a091ebb..babd12c94 100644 --- a/i18n/de.i18n.json +++ b/i18n/de.i18n.json @@ -576,16 +576,16 @@ "r-rule": "Regel", "r-add-trigger": "Auslöser hinzufügen", "r-add-action": "Aktion hinzufügen", - "r-board-rules": "Board Regeln", + "r-board-rules": "Boardregeln", "r-add-rule": "Regel hinzufügen", "r-view-rule": "Regel anzeigen", "r-delete-rule": "Regel löschen", "r-new-rule-name": "Neuer Regeltitel", "r-no-rules": "Keine Regeln", - "r-when-a-card": "Wenn eine Karte", - "r-is": "ist", + "r-when-a-card": "Wenn Karte", + "r-is": "wird", "r-is-moved": "verschoben wird", - "r-added-to": "hinzugefügt wird zu", + "r-added-to": "hinzugefügt zu", "r-removed-from": "Entfernt von", "r-the-board": "das Board", "r-list": "Liste", From 4bc3acb14d9c226c30da9b72ca5988d75f083ddf Mon Sep 17 00:00:00 2001 From: chotaire Date: Fri, 5 Apr 2019 02:59:35 +0200 Subject: [PATCH 33/54] Add proper variables for unjoin card --- models/cards.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/models/cards.js b/models/cards.js index 124883543..047a760ed 100644 --- a/models/cards.js +++ b/models/cards.js @@ -1403,6 +1403,9 @@ function cardMembers(userId, doc, fieldNames, modifier) { activityType: 'unjoinMember', boardId: doc.boardId, cardId: doc._id, + memberId, + listId: doc.listId, + swimlaneId: doc.swimlaneId, }); } } From 8aca82a5939273fd7d4fce4aa4855dea7b4fde6f Mon Sep 17 00:00:00 2001 From: hupptechnologies Date: Fri, 5 Apr 2019 13:27:41 +0530 Subject: [PATCH 34/54] Issue: Center (or reduce left margin) in card view on mobile browser #2188 Resolved #2188 --- .meteor/packages | 8 ++++---- .meteor/versions | 9 --------- client/components/cards/cardDetails.styl | 3 ++- 3 files changed, 6 insertions(+), 14 deletions(-) diff --git a/.meteor/packages b/.meteor/packages index 9a3f9bcae..b9b7ba818 100644 --- a/.meteor/packages +++ b/.meteor/packages @@ -31,9 +31,9 @@ kenton:accounts-sandstorm service-configuration@1.0.11 useraccounts:unstyled useraccounts:flow-routing -wekan:wekan-ldap -wekan:accounts-cas -wekan-accounts-oidc +#wekan:wekan-ldap +#wekan:accounts-cas +#wekan-accounts-oidc # Utilities check@1.2.5 @@ -87,7 +87,7 @@ momentjs:moment@2.22.2 browser-policy-framing mquandalle:moment msavin:usercache -wekan-scrollbar +#wekan-scrollbar mquandalle:perfect-scrollbar mdg:meteor-apm-agent meteorhacks:unblock diff --git a/.meteor/versions b/.meteor/versions index 390cda637..72c1fd554 100644 --- a/.meteor/versions +++ b/.meteor/versions @@ -1,6 +1,5 @@ 3stack:presence@1.1.2 accounts-base@1.4.0 -accounts-oauth@1.1.15 accounts-password@1.5.0 aldeed:collection2@2.10.0 aldeed:collection2-core@1.2.0 @@ -122,8 +121,6 @@ mquandalle:perfect-scrollbar@0.6.5_2 msavin:usercache@1.0.0 npm-bcrypt@0.9.3 npm-mongo@2.2.33 -oauth@1.2.1 -oauth2@1.2.0 observe-sequence@1.0.16 ongoworks:speakingurl@1.1.0 ordered-dict@1.0.9 @@ -179,10 +176,4 @@ useraccounts:unstyled@1.14.2 verron:autosize@3.0.8 webapp@1.4.0 webapp-hashing@1.0.9 -wekan-accounts-oidc@1.0.10 -wekan-oidc@1.0.12 -wekan-scrollbar@3.1.3 -wekan:accounts-cas@0.1.0 -wekan:wekan-ldap@0.0.2 -yasaricli:slugify@0.0.7 zimme:active-route@2.3.2 diff --git a/client/components/cards/cardDetails.styl b/client/components/cards/cardDetails.styl index bf50c0719..c1d6b7e14 100644 --- a/client/components/cards/cardDetails.styl +++ b/client/components/cards/cardDetails.styl @@ -133,7 +133,8 @@ input[type="submit"].attachment-add-link-submit .card-details-canvas width: 100% - + padding-left: 0px; + .card-details-header .close-card-details margin-right: 0px From 48216e16537d50a27579c545c93624c0302a5a78 Mon Sep 17 00:00:00 2001 From: Angelo Gallarello Date: Fri, 5 Apr 2019 10:38:39 +0200 Subject: [PATCH 35/54] Minor fixes --- client/components/boards/boardsList.jade | 4 +--- client/components/boards/boardsList.styl | 13 +++++++++++++ i18n/en.i18n.json | 3 ++- models/export.js | 1 - models/import.js | 1 + 5 files changed, 17 insertions(+), 5 deletions(-) diff --git a/client/components/boards/boardsList.jade b/client/components/boards/boardsList.jade index 109c25ed9..753724fc4 100644 --- a/client/components/boards/boardsList.jade +++ b/client/components/boards/boardsList.jade @@ -22,9 +22,7 @@ template(name="boardList") i.fa.js-star-board( class="fa-star{{#if isStarred}} is-star-active{{else}}-o{{/if}}" title="{{_ 'star-board-title'}}") - i.fa.js-clone-board( - class="fa-clone") - + i.fa.js-clone-board(class="fa-clone") if hasSpentTimeCards i.fa.js-has-spenttime-cards( class="fa-circle{{#if hasOvertimeCards}} has-overtime-card-active{{else}} no-overtime-card-active{{/if}}" diff --git a/client/components/boards/boardsList.styl b/client/components/boards/boardsList.styl index 80e476855..9f0b204e7 100644 --- a/client/components/boards/boardsList.styl +++ b/client/components/boards/boardsList.styl @@ -93,14 +93,27 @@ $spaceBetweenTiles = 16px .is-star-active color: white + .fa-clone + position: absolute; + bottom: 0 + font-size: 14px + height: 18px + line-height: 18px + opacity: 0 + right: 0 + padding: 9px 9px + transition-duration: .15s + transition-property: color, font-size, background li:hover a &:hover .fa-star, + .fa-clone, .fa-star-o color: white .fa-star, + .fa-clone, .fa-star-o color: white opacity: .75 diff --git a/i18n/en.i18n.json b/i18n/en.i18n.json index d4e817ea0..84975fde1 100644 --- a/i18n/en.i18n.json +++ b/i18n/en.i18n.json @@ -664,5 +664,6 @@ "error-undefined": "Something went wrong", "error-ldap-login": "An error occurred while trying to login", "display-authentication-method": "Display Authentication Method", - "default-authentication-method": "Default Authentication Method" + "default-authentication-method": "Default Authentication Method", + "copy-tag": "Copy" } diff --git a/models/export.js b/models/export.js index 21710067f..f7f2b7135 100644 --- a/models/export.js +++ b/models/export.js @@ -17,7 +17,6 @@ if (Meteor.isServer) { JsonRoutes.add('get', '/api/boards/:boardId/export', function(req, res) { - console.error("LOGG API"); const boardId = req.params.boardId; let user = null; // todo XXX for real API, first look for token in Authentication: header diff --git a/models/import.js b/models/import.js index c73959b71..bf3a863ed 100644 --- a/models/import.js +++ b/models/import.js @@ -39,6 +39,7 @@ Meteor.methods({ let addData = {}; addData.membersMapping = wekanMembersMapper.getMembersToMap(data); const creator = new WekanCreator(addData); + data.title = data.title + " - " + TAPi18n.__('copy-tag'); return creator.create(data, currentBoardId); }, }); From a1fe22c08c157c6c795b008be3bf6b822497deb4 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 6 Apr 2019 07:43:14 +0300 Subject: [PATCH 36/54] [Add proper variables for unjoin card](https://github.com/wekan/wekan/pull/2313). Thanks to chotaire. --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index bdfbba1cd..32f1a8198 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# Upcoming Wekan release + +This release fixes the following bugs: + +- [Add proper variables for unjoin card](https://github.com/wekan/wekan/pull/2313). + Thanks to chotaire. + # v2.57 2019-04-02 Wekan release This release fixes the following bugs, thanks to justinr1234: From d1e13e48feb568ca89787c8b7f48c3c841bd25fc Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 6 Apr 2019 07:47:08 +0300 Subject: [PATCH 37/54] Restore original meteor packages and versions. Thanks to xet7 ! --- .meteor/packages | 8 ++++---- .meteor/versions | 9 +++++++++ 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/.meteor/packages b/.meteor/packages index b9b7ba818..9a3f9bcae 100644 --- a/.meteor/packages +++ b/.meteor/packages @@ -31,9 +31,9 @@ kenton:accounts-sandstorm service-configuration@1.0.11 useraccounts:unstyled useraccounts:flow-routing -#wekan:wekan-ldap -#wekan:accounts-cas -#wekan-accounts-oidc +wekan:wekan-ldap +wekan:accounts-cas +wekan-accounts-oidc # Utilities check@1.2.5 @@ -87,7 +87,7 @@ momentjs:moment@2.22.2 browser-policy-framing mquandalle:moment msavin:usercache -#wekan-scrollbar +wekan-scrollbar mquandalle:perfect-scrollbar mdg:meteor-apm-agent meteorhacks:unblock diff --git a/.meteor/versions b/.meteor/versions index 72c1fd554..390cda637 100644 --- a/.meteor/versions +++ b/.meteor/versions @@ -1,5 +1,6 @@ 3stack:presence@1.1.2 accounts-base@1.4.0 +accounts-oauth@1.1.15 accounts-password@1.5.0 aldeed:collection2@2.10.0 aldeed:collection2-core@1.2.0 @@ -121,6 +122,8 @@ mquandalle:perfect-scrollbar@0.6.5_2 msavin:usercache@1.0.0 npm-bcrypt@0.9.3 npm-mongo@2.2.33 +oauth@1.2.1 +oauth2@1.2.0 observe-sequence@1.0.16 ongoworks:speakingurl@1.1.0 ordered-dict@1.0.9 @@ -176,4 +179,10 @@ useraccounts:unstyled@1.14.2 verron:autosize@3.0.8 webapp@1.4.0 webapp-hashing@1.0.9 +wekan-accounts-oidc@1.0.10 +wekan-oidc@1.0.12 +wekan-scrollbar@3.1.3 +wekan:accounts-cas@0.1.0 +wekan:wekan-ldap@0.0.2 +yasaricli:slugify@0.0.7 zimme:active-route@2.3.2 From 959392f8159c9aaf0d5bda92741b23c7a1b1a23f Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 6 Apr 2019 07:57:30 +0300 Subject: [PATCH 38/54] [Center reduce left margin in card view on mobile browser](https://github.com/wekan/wekan/pull/2314). Thanks to hupptechnologies ! --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 32f1a8198..2d09c25d4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,10 @@ This release fixes the following bugs: - [Add proper variables for unjoin card](https://github.com/wekan/wekan/pull/2313). Thanks to chotaire. +- [Center reduce left margin in card view on mobile browser](https://github.com/wekan/wekan/pull/2314). + Thanks to hupptechnologies. + +Thanks to above GitHub users for their contributions and translators for their translations. # v2.57 2019-04-02 Wekan release From 217b3ae48879c356d40e4281cceac5b38e67bb16 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 6 Apr 2019 08:11:08 +0300 Subject: [PATCH 39/54] Remove not needed ARGS from Dockerfile to reduce amount of Docker layers. Thanks to folhabranca ! Closes #2301 --- Dockerfile | 94 ------------------------------------------------------ 1 file changed, 94 deletions(-) diff --git a/Dockerfile b/Dockerfile index 3a81a4725..73f8e4bc7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,100 +1,6 @@ FROM ubuntu:cosmic LABEL maintainer="wekan" -# Declare Arguments -ARG DEBUG -ARG NODE_VERSION -ARG METEOR_RELEASE -ARG METEOR_EDGE -ARG USE_EDGE -ARG NPM_VERSION -ARG FIBERS_VERSION -ARG ARCHITECTURE -ARG SRC_PATH -ARG WITH_API -ARG ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURES_BEFORE -ARG ACCOUNTS_LOCKOUT_KNOWN_USERS_PERIOD -ARG ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURE_WINDOW -ARG ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURES_BERORE -ARG ACCOUNTS_LOCKOUT_UNKNOWN_USERS_LOCKOUT_PERIOD -ARG ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURE_WINDOW -ARG EMAIL_NOTIFICATION_TIMEOUT -ARG MATOMO_ADDRESS -ARG MATOMO_SITE_ID -ARG MATOMO_DO_NOT_TRACK -ARG MATOMO_WITH_USERNAME -ARG BROWSER_POLICY_ENABLED -ARG TRUSTED_URL -ARG WEBHOOKS_ATTRIBUTES -ARG OAUTH2_ENABLED -ARG OAUTH2_LOGIN_STYLE -ARG OAUTH2_CLIENT_ID -ARG OAUTH2_SECRET -ARG OAUTH2_SERVER_URL -ARG OAUTH2_AUTH_ENDPOINT -ARG OAUTH2_USERINFO_ENDPOINT -ARG OAUTH2_TOKEN_ENDPOINT -ARG OAUTH2_ID_MAP -ARG OAUTH2_USERNAME_MAP -ARG OAUTH2_FULLNAME_MAP -ARG OAUTH2_EMAIL_MAP -ARG LDAP_ENABLE -ARG LDAP_PORT -ARG LDAP_HOST -ARG LDAP_BASEDN -ARG LDAP_LOGIN_FALLBACK -ARG LDAP_RECONNECT -ARG LDAP_TIMEOUT -ARG LDAP_IDLE_TIMEOUT -ARG LDAP_CONNECT_TIMEOUT -ARG LDAP_AUTHENTIFICATION -ARG LDAP_AUTHENTIFICATION_USERDN -ARG LDAP_AUTHENTIFICATION_PASSWORD -ARG LDAP_LOG_ENABLED -ARG LDAP_BACKGROUND_SYNC -ARG LDAP_BACKGROUND_SYNC_INTERVAL -ARG LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED -ARG LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS -ARG LDAP_ENCRYPTION -ARG LDAP_CA_CERT -ARG LDAP_REJECT_UNAUTHORIZED -ARG LDAP_USER_SEARCH_FILTER -ARG LDAP_USER_SEARCH_SCOPE -ARG LDAP_USER_SEARCH_FIELD -ARG LDAP_SEARCH_PAGE_SIZE -ARG LDAP_SEARCH_SIZE_LIMIT -ARG LDAP_GROUP_FILTER_ENABLE -ARG LDAP_GROUP_FILTER_OBJECTCLASS -ARG LDAP_GROUP_FILTER_GROUP_ID_ATTRIBUTE -ARG LDAP_GROUP_FILTER_GROUP_MEMBER_ATTRIBUTE -ARG LDAP_GROUP_FILTER_GROUP_MEMBER_FORMAT -ARG LDAP_GROUP_FILTER_GROUP_NAME -ARG LDAP_UNIQUE_IDENTIFIER_FIELD -ARG LDAP_UTF8_NAMES_SLUGIFY -ARG LDAP_USERNAME_FIELD -ARG LDAP_FULLNAME_FIELD -ARG LDAP_EMAIL_FIELD -ARG LDAP_EMAIL_MATCH_ENABLE -ARG LDAP_EMAIL_MATCH_REQUIRE -ARG LDAP_EMAIL_MATCH_VERIFIED -ARG LDAP_MERGE_EXISTING_USERS -ARG LDAP_SYNC_USER_DATA -ARG LDAP_SYNC_USER_DATA_FIELDMAP -ARG LDAP_SYNC_GROUP_ROLES -ARG LDAP_DEFAULT_DOMAIN -ARG LDAP_SYNC_ADMIN_STATUS -ARG LDAP_SYNC_ADMIN_GROUPS -ARG HEADER_LOGIN_ID -ARG HEADER_LOGIN_FIRSTNAME -ARG HEADER_LOGIN_LASTNAME -ARG HEADER_LOGIN_EMAIL -ARG LOGOUT_WITH_TIMER -ARG LOGOUT_IN -ARG LOGOUT_ON_HOURS -ARG LOGOUT_ON_MINUTES -ARG CORS -ARG DEFAULT_AUTHENTICATION_METHOD - # Set the environment variables (defaults where required) # DOES NOT WORK: paxctl fix for alpine linux: https://github.com/wekan/wekan/issues/1303 # ENV BUILD_DEPS="paxctl" From b680bb53725103f186ac1c7cb604fbd4a5773051 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 6 Apr 2019 08:14:37 +0300 Subject: [PATCH 40/54] - [Remove not needed ARGS from Dockerfile to reduce amount of Docker layers](https://github.com/wekan/wekan/issues/2301). Thanks to folhabranca ! Closes #2301 --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2d09c25d4..a90a8aa2f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,8 @@ This release fixes the following bugs: Thanks to chotaire. - [Center reduce left margin in card view on mobile browser](https://github.com/wekan/wekan/pull/2314). Thanks to hupptechnologies. +- [Remove not needed ARGS from Dockerfile to reduce amount of Docker layers](https://github.com/wekan/wekan/issues/2301). + Thanks to folhabranca. Thanks to above GitHub users for their contributions and translators for their translations. From 972b9b6e9169b92c1a88bbc873313d7eead42f30 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 6 Apr 2019 08:50:56 +0300 Subject: [PATCH 41/54] Remove extra files. Thanks to xet7 ! --- build/config.gypi | 70 ----------------------------------------------- logs.txt | 29 -------------------- 2 files changed, 99 deletions(-) delete mode 100644 build/config.gypi delete mode 100644 logs.txt diff --git a/build/config.gypi b/build/config.gypi deleted file mode 100644 index 760db73d5..000000000 --- a/build/config.gypi +++ /dev/null @@ -1,70 +0,0 @@ -# Do not edit. File was generated by node-gyp's "configure" step -{ - "target_defaults": { - "cflags": [], - "default_configuration": "Release", - "defines": [], - "include_dirs": [], - "libraries": [] - }, - "variables": { - "asan": 0, - "build_v8_with_gn": "false", - "coverage": "false", - "debug_nghttp2": "false", - "enable_lto": "false", - "enable_pgo_generate": "false", - "enable_pgo_use": "false", - "force_dynamic_crt": 0, - "host_arch": "x64", - "icu_gyp_path": "tools/icu/icu-system.gyp", - "icu_small": "false", - "icu_ver_major": "63", - "llvm_version": "0", - "node_byteorder": "little", - "node_debug_lib": "false", - "node_enable_d8": "false", - "node_enable_v8_vtunejit": "false", - "node_experimental_http_parser": "false", - "node_install_npm": "false", - "node_module_version": 67, - "node_no_browser_globals": "false", - "node_prefix": "/usr/local/Cellar/node/11.6.0", - "node_release_urlbase": "", - "node_shared": "false", - "node_shared_cares": "false", - "node_shared_http_parser": "false", - "node_shared_libuv": "false", - "node_shared_nghttp2": "false", - "node_shared_openssl": "false", - "node_shared_zlib": "false", - "node_tag": "", - "node_target_type": "executable", - "node_use_bundled_v8": "true", - "node_use_dtrace": "true", - "node_use_etw": "false", - "node_use_large_pages": "false", - "node_use_openssl": "true", - "node_use_pch": "false", - "node_use_v8_platform": "true", - "node_with_ltcg": "false", - "node_without_node_options": "false", - "openssl_fips": "", - "shlib_suffix": "67.dylib", - "target_arch": "x64", - "v8_enable_gdbjit": 0, - "v8_enable_i18n_support": 1, - "v8_enable_inspector": 1, - "v8_no_strict_aliasing": 1, - "v8_optimized_debug": 1, - "v8_promise_internal_field_count": 1, - "v8_random_seed": 0, - "v8_trace_maps": 0, - "v8_typed_array_max_size_in_heap": 0, - "v8_use_snapshot": "true", - "want_separate_host_toolset": 0, - "xcode_version": "10.0", - "nodedir": "/Users/angtrim/.node-gyp/11.6.0", - "standalone_static_library": 1 - } -} diff --git a/logs.txt b/logs.txt deleted file mode 100644 index 2f3fa7464..000000000 --- a/logs.txt +++ /dev/null @@ -1,29 +0,0 @@ -[[[[[ ~/Projects/wekan ]]]]] - -=> Started proxy. -=> A patch (Meteor 1.6.1.4) for your current release is available! - Update this project now with 'meteor update --patch'. -=> Started MongoDB. -I20190104-18:05:07.115(1)? Presence started serverId=5obj8Jf6oCDspWgMz -W20190104-18:05:07.463(1)? (STDERR) Note: you are using a pure-JavaScript implementation of bcrypt. -W20190104-18:05:07.464(1)? (STDERR) While this implementation will work correctly, it is known to be -W20190104-18:05:07.464(1)? (STDERR) approximately three times slower than the native implementation. -W20190104-18:05:07.465(1)? (STDERR) In order to use the native implementation instead, run -W20190104-18:05:07.465(1)? (STDERR)  -W20190104-18:05:07.466(1)? (STDERR)  meteor npm install --save bcrypt -W20190104-18:05:07.466(1)? (STDERR)  -W20190104-18:05:07.467(1)? (STDERR) in the root directory of your application. -=> Started your app. - -=> App running at: http://localhost:3000/ -=> Server modified -- restarting... I20190104-18:06:15.969(1)? Presence started serverId=XNprswJmWsvaCxBEb -W20190104-18:06:16.274(1)? (STDERR) Note: you are using a pure-JavaScript implementation of bcrypt. -W20190104-18:06:16.275(1)? (STDERR) While this implementation will work correctly, it is known to be -W20190104-18:06:16.276(1)? (STDERR) approximately three times slower than the native implementation. -W20190104-18:06:16.276(1)? (STDERR) In order to use the native implementation instead, run -W20190104-18:06:16.277(1)? (STDERR)  -W20190104-18:06:16.277(1)? (STDERR)  meteor npm install --save bcrypt -W20190104-18:06:16.278(1)? (STDERR)  -W20190104-18:06:16.278(1)? (STDERR) in the root directory of your application. -=> Meteor server restarted -=> Client modified -- refreshing \ No newline at end of file From ebfc8e5a1bd4cbc5cf6e37a913bc8eb231566050 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 6 Apr 2019 09:00:13 +0300 Subject: [PATCH 42/54] Fix lint errors. Thanks to xet7 ! --- client/components/boards/boardsList.js | 2 +- models/export.js | 2 +- models/import.js | 9 +++--- models/wekanCreator.js | 38 +++++++++++++------------- server/rulesHelper.js | 2 +- 5 files changed, 26 insertions(+), 27 deletions(-) diff --git a/client/components/boards/boardsList.js b/client/components/boards/boardsList.js index ad28fee8a..8c45fbe28 100644 --- a/client/components/boards/boardsList.js +++ b/client/components/boards/boardsList.js @@ -67,7 +67,7 @@ BlazeComponent.extendComponent({ Utils.goBoardId(res); } } - ); + ); evt.preventDefault(); }, 'click .js-accept-invite'() { diff --git a/models/export.js b/models/export.js index d402efe38..49aac828d 100644 --- a/models/export.js +++ b/models/export.js @@ -30,7 +30,7 @@ if (Meteor.isServer) { } const exporter = new Exporter(boardId); - if (true||exporter.canExport(user)) { + if (exporter.canExport(user)) { JsonRoutes.sendResult(res, { code: 200, data: exporter.build(), diff --git a/models/import.js b/models/import.js index f70992827..ddc1a1d09 100644 --- a/models/import.js +++ b/models/import.js @@ -31,18 +31,17 @@ Meteor.methods({ }); Meteor.methods({ - cloneBoard(sourceBoardId,currentBoardId) { + cloneBoard(sourceBoardId, currentBoardId) { check(sourceBoardId, String); check(currentBoardId, Match.Maybe(String)); const exporter = new Exporter(sourceBoardId); - let data = exporter.build(); - let addData = {}; + const data = exporter.build(); + const addData = {}; addData.membersMapping = wekanMembersMapper.getMembersToMap(data); const creator = new WekanCreator(addData); - data.title = data.title + " - " + TAPi18n.__('copy-tag'); + data.title = `${data.title } - ${ TAPi18n.__('copy-tag')}`; return creator.create(data, currentBoardId); }, }); - diff --git a/models/wekanCreator.js b/models/wekanCreator.js index d0494a769..0f6a9d17b 100644 --- a/models/wekanCreator.js +++ b/models/wekanCreator.js @@ -173,25 +173,25 @@ export class WekanCreator { // we will work on the list itself (an ordered array of objects) when a // mapping is done, we add a 'wekan' field to the object representing the // imported member - const membersToMap = data.members; - const users = data.users; - // auto-map based on username - membersToMap.forEach((importedMember) => { - importedMember.id = importedMember.userId; - delete importedMember.userId; - const user = users.filter((user) => { - return user._id === importedMember.id; - })[0]; - if (user.profile && user.profile.fullname) { - importedMember.fullName = user.profile.fullname; - } - importedMember.username = user.username; - const wekanUser = Users.findOne({ username: importedMember.username }); - if (wekanUser) { - importedMember.wekanId = wekanUser._id; - } - }); - return membersToMap; + const membersToMap = data.members; + const users = data.users; + // auto-map based on username + membersToMap.forEach((importedMember) => { + importedMember.id = importedMember.userId; + delete importedMember.userId; + const user = users.filter((user) => { + return user._id === importedMember.id; + })[0]; + if (user.profile && user.profile.fullname) { + importedMember.fullName = user.profile.fullname; + } + importedMember.username = user.username; + const wekanUser = Users.findOne({ username: importedMember.username }); + if (wekanUser) { + importedMember.wekanId = wekanUser._id; + } + }); + return membersToMap; } checkActions(wekanActions) { diff --git a/server/rulesHelper.js b/server/rulesHelper.js index 4c8ec4fa4..197e3756f 100644 --- a/server/rulesHelper.js +++ b/server/rulesHelper.js @@ -141,7 +141,7 @@ RulesHelper = { Swimlanes.insert({ title: action.swimlaneName, boardId, - sort: 0 + sort: 0, }); } if(action.actionType === 'addChecklistWithItems'){ From 93a5bb2baa546d3c0c51a10e429db0c2e2e1482a Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 6 Apr 2019 09:19:33 +0300 Subject: [PATCH 43/54] Add the following new features: - [Duplicate Board](https://github.com/wekan/wekan/issues/2257). Related #2225. Thanks to Angtrim. Closes #2257. and fix the following bugs: - [Fix Swimlane Rules don't work](https://github.com/wekan/wekan/issues/2225). Thanks to Angtrim. --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a90a8aa2f..9ee3cb197 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Upcoming Wekan release +This release adds the following new features: + +- [Duplicate Board](https://github.com/wekan/wekan/issues/2257). Related #2225. + Thanks to Angtrim. + This release fixes the following bugs: - [Add proper variables for unjoin card](https://github.com/wekan/wekan/pull/2313). @@ -8,6 +13,8 @@ This release fixes the following bugs: Thanks to hupptechnologies. - [Remove not needed ARGS from Dockerfile to reduce amount of Docker layers](https://github.com/wekan/wekan/issues/2301). Thanks to folhabranca. +- [Fix Swimlane Rules don't work](https://github.com/wekan/wekan/issues/2225). + Thanks to Angtrim. Thanks to above GitHub users for their contributions and translators for their translations. From 143e93f483c947185d7db1380bad23005e3d946c Mon Sep 17 00:00:00 2001 From: windblow Date: Sat, 6 Apr 2019 12:45:31 +0300 Subject: [PATCH 44/54] Add variables for activity notifications Fixes #2285 --- models/attachments.js | 4 ++++ models/cardComments.js | 2 ++ models/cards.js | 6 ++++++ models/checklistItems.js | 10 ++++++++++ models/checklists.js | 4 ++++ 5 files changed, 26 insertions(+) diff --git a/models/attachments.js b/models/attachments.js index f870861ba..fb32f497b 100644 --- a/models/attachments.js +++ b/models/attachments.js @@ -72,6 +72,8 @@ if (Meteor.isServer) { attachmentId: doc._id, boardId: doc.boardId, cardId: doc.cardId, + listId: doc.listId, + swimlaneId: doc.swimlaneId, }); } else { // Don't add activity about adding the attachment as the activity @@ -96,6 +98,8 @@ if (Meteor.isServer) { activityType: 'deleteAttachment', boardId: doc.boardId, cardId: doc.cardId, + listId: doc.listId, + swimlaneId: doc.swimlaneId, }); }); } diff --git a/models/cardComments.js b/models/cardComments.js index fcb97104d..2bcb54531 100644 --- a/models/cardComments.js +++ b/models/cardComments.js @@ -87,6 +87,8 @@ function commentCreation(userId, doc){ boardId: doc.boardId, cardId: doc.cardId, commentId: doc._id, + listId: doc.listId, + swimlaneId: doc.swimlaneId, }); } diff --git a/models/cards.js b/models/cards.js index 047a760ed..e65d88ae9 100644 --- a/models/cards.js +++ b/models/cards.js @@ -1355,6 +1355,7 @@ function cardState(userId, doc, fieldNames) { boardId: doc.boardId, listId: doc.listId, cardId: doc._id, + swimlaneId: doc.swimlaneId, }); } else { Activities.insert({ @@ -1364,6 +1365,7 @@ function cardState(userId, doc, fieldNames) { listName: Lists.findOne(doc.listId).title, listId: doc.listId, cardId: doc._id, + swimlaneId: doc.swimlaneId, }); } } @@ -1425,6 +1427,8 @@ function cardLabels(userId, doc, fieldNames, modifier) { activityType: 'addedLabel', boardId: doc.boardId, cardId: doc._id, + listId: doc.listId, + swimlaneId: doc.swimlaneId, }; Activities.insert(act); } @@ -1441,6 +1445,8 @@ function cardLabels(userId, doc, fieldNames, modifier) { activityType: 'removedLabel', boardId: doc.boardId, cardId: doc._id, + listId: doc.listId, + swimlaneId: doc.swimlaneId, }); } } diff --git a/models/checklistItems.js b/models/checklistItems.js index c46fe9bd4..013fee04a 100644 --- a/models/checklistItems.js +++ b/models/checklistItems.js @@ -95,6 +95,8 @@ function itemCreation(userId, doc) { checklistId: doc.checklistId, checklistItemId: doc._id, checklistItemName:doc.title, + listId: doc.listId, + swimlaneId: doc.swimlaneId, }); } @@ -121,6 +123,8 @@ function publishCheckActivity(userId, doc){ checklistId: doc.checklistId, checklistItemId: doc._id, checklistItemName:doc.title, + listId: doc.listId, + swimlaneId: doc.swimlaneId, }; Activities.insert(act); } @@ -138,6 +142,8 @@ function publishChekListCompleted(userId, doc){ boardId, checklistId: doc.checklistId, checklistName: checkList.title, + listId: doc.listId, + swimlaneId: doc.swimlaneId, }; Activities.insert(act); } @@ -169,6 +175,8 @@ function publishChekListUncompleted(userId, doc){ boardId, checklistId: doc.checklistId, checklistName: checkList.title, + listId: doc.listId, + swimlaneId: doc.swimlaneId, }; Activities.insert(act); } @@ -207,6 +215,8 @@ if (Meteor.isServer) { checklistId: doc.checklistId, checklistItemId: doc._id, checklistItemName:doc.title, + listId: doc.listId, + swimlaneId: doc.swimlaneId, }); }); } diff --git a/models/checklists.js b/models/checklists.js index 9e763f1ad..d5063fafb 100644 --- a/models/checklists.js +++ b/models/checklists.js @@ -135,6 +135,8 @@ if (Meteor.isServer) { boardId: Cards.findOne(doc.cardId).boardId, checklistId: doc._id, checklistName:doc.title, + listId: doc.listId, + swimlaneId: doc.swimlaneId, }); }); @@ -152,6 +154,8 @@ if (Meteor.isServer) { boardId: Cards.findOne(doc.cardId).boardId, checklistId: doc._id, checklistName:doc.title, + listId: doc.listId, + swimlaneId: doc.swimlaneId, }); From 0f15b6d1982c383f76e8411cb501ff27e8febd42 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 6 Apr 2019 13:47:15 +0300 Subject: [PATCH 45/54] - Add Duplicate Board tooltip, and remove adding text "Copy" to duplicated board. Thanks to xet7 ! --- client/components/boards/boardsList.jade | 4 +++- i18n/ar.i18n.json | 3 ++- i18n/bg.i18n.json | 3 ++- i18n/br.i18n.json | 3 ++- i18n/ca.i18n.json | 3 ++- i18n/cs.i18n.json | 3 ++- i18n/da.i18n.json | 3 ++- i18n/de.i18n.json | 3 ++- i18n/el.i18n.json | 3 ++- i18n/en-GB.i18n.json | 3 ++- i18n/en.i18n.json | 2 +- i18n/eo.i18n.json | 3 ++- i18n/es-AR.i18n.json | 3 ++- i18n/es.i18n.json | 3 ++- i18n/eu.i18n.json | 3 ++- i18n/fa.i18n.json | 3 ++- i18n/fi.i18n.json | 3 ++- i18n/fr.i18n.json | 3 ++- i18n/gl.i18n.json | 3 ++- i18n/he.i18n.json | 3 ++- i18n/hi.i18n.json | 3 ++- i18n/hu.i18n.json | 3 ++- i18n/hy.i18n.json | 3 ++- i18n/id.i18n.json | 3 ++- i18n/ig.i18n.json | 3 ++- i18n/it.i18n.json | 3 ++- i18n/ja.i18n.json | 3 ++- i18n/ka.i18n.json | 3 ++- i18n/km.i18n.json | 3 ++- i18n/ko.i18n.json | 3 ++- i18n/lv.i18n.json | 3 ++- i18n/mk.i18n.json | 3 ++- i18n/mn.i18n.json | 3 ++- i18n/nb.i18n.json | 3 ++- i18n/nl.i18n.json | 3 ++- i18n/oc.i18n.json | 3 ++- i18n/pl.i18n.json | 3 ++- i18n/pt-BR.i18n.json | 3 ++- i18n/pt.i18n.json | 3 ++- i18n/ro.i18n.json | 3 ++- i18n/ru.i18n.json | 3 ++- i18n/sr.i18n.json | 3 ++- i18n/sv.i18n.json | 3 ++- i18n/sw.i18n.json | 3 ++- i18n/ta.i18n.json | 3 ++- i18n/th.i18n.json | 3 ++- i18n/tr.i18n.json | 3 ++- i18n/uk.i18n.json | 3 ++- i18n/vi.i18n.json | 3 ++- i18n/zh-CN.i18n.json | 3 ++- i18n/zh-TW.i18n.json | 3 ++- models/import.js | 3 ++- 52 files changed, 104 insertions(+), 52 deletions(-) diff --git a/client/components/boards/boardsList.jade b/client/components/boards/boardsList.jade index abb009f73..0da926ef5 100644 --- a/client/components/boards/boardsList.jade +++ b/client/components/boards/boardsList.jade @@ -22,7 +22,9 @@ template(name="boardList") i.fa.js-star-board( class="fa-star{{#if isStarred}} is-star-active{{else}}-o{{/if}}" title="{{_ 'star-board-title'}}") - i.fa.js-clone-board(class="fa-clone") + i.fa.js-clone-board( + class="fa-clone" + title="{{_ 'duplicate-board'}}") if hasSpentTimeCards i.fa.js-has-spenttime-cards( class="fa-circle{{#if hasOvertimeCards}} has-overtime-card-active{{else}} no-overtime-card-active{{/if}}" diff --git a/i18n/ar.i18n.json b/i18n/ar.i18n.json index 926e04ff4..e63820461 100644 --- a/i18n/ar.i18n.json +++ b/i18n/ar.i18n.json @@ -682,5 +682,6 @@ "error-undefined": "Something went wrong", "error-ldap-login": "An error occurred while trying to login", "display-authentication-method": "Display Authentication Method", - "default-authentication-method": "Default Authentication Method" + "default-authentication-method": "Default Authentication Method", + "duplicate-board": "Duplicate Board" } \ No newline at end of file diff --git a/i18n/bg.i18n.json b/i18n/bg.i18n.json index 1592bc08e..bca2c9151 100644 --- a/i18n/bg.i18n.json +++ b/i18n/bg.i18n.json @@ -682,5 +682,6 @@ "error-undefined": "Something went wrong", "error-ldap-login": "An error occurred while trying to login", "display-authentication-method": "Display Authentication Method", - "default-authentication-method": "Default Authentication Method" + "default-authentication-method": "Default Authentication Method", + "duplicate-board": "Duplicate Board" } \ No newline at end of file diff --git a/i18n/br.i18n.json b/i18n/br.i18n.json index 065c1fa58..6a793d2c5 100644 --- a/i18n/br.i18n.json +++ b/i18n/br.i18n.json @@ -682,5 +682,6 @@ "error-undefined": "Something went wrong", "error-ldap-login": "An error occurred while trying to login", "display-authentication-method": "Display Authentication Method", - "default-authentication-method": "Default Authentication Method" + "default-authentication-method": "Default Authentication Method", + "duplicate-board": "Duplicate Board" } \ No newline at end of file diff --git a/i18n/ca.i18n.json b/i18n/ca.i18n.json index f93a60c90..170e8571e 100644 --- a/i18n/ca.i18n.json +++ b/i18n/ca.i18n.json @@ -682,5 +682,6 @@ "error-undefined": "Something went wrong", "error-ldap-login": "An error occurred while trying to login", "display-authentication-method": "Display Authentication Method", - "default-authentication-method": "Default Authentication Method" + "default-authentication-method": "Default Authentication Method", + "duplicate-board": "Duplicate Board" } \ No newline at end of file diff --git a/i18n/cs.i18n.json b/i18n/cs.i18n.json index c3a3eb050..8f1813150 100644 --- a/i18n/cs.i18n.json +++ b/i18n/cs.i18n.json @@ -682,5 +682,6 @@ "error-undefined": "Něco se pokazilo", "error-ldap-login": "Během přihlašování nastala chyba", "display-authentication-method": "Zobraz způsob ověřování", - "default-authentication-method": "Zobraz způsob ověřování" + "default-authentication-method": "Zobraz způsob ověřování", + "duplicate-board": "Duplicate Board" } \ No newline at end of file diff --git a/i18n/da.i18n.json b/i18n/da.i18n.json index 00df0fdbf..94f0bc162 100644 --- a/i18n/da.i18n.json +++ b/i18n/da.i18n.json @@ -682,5 +682,6 @@ "error-undefined": "Something went wrong", "error-ldap-login": "An error occurred while trying to login", "display-authentication-method": "Display Authentication Method", - "default-authentication-method": "Default Authentication Method" + "default-authentication-method": "Default Authentication Method", + "duplicate-board": "Duplicate Board" } \ No newline at end of file diff --git a/i18n/de.i18n.json b/i18n/de.i18n.json index babd12c94..e76839bc8 100644 --- a/i18n/de.i18n.json +++ b/i18n/de.i18n.json @@ -682,5 +682,6 @@ "error-undefined": "Etwas ist schief gelaufen", "error-ldap-login": "Es ist ein Fehler beim Anmelden aufgetreten", "display-authentication-method": "Anzeige Authentifizierungsverfahren", - "default-authentication-method": "Standardauthentifizierungsverfahren" + "default-authentication-method": "Standardauthentifizierungsverfahren", + "duplicate-board": "Duplicate Board" } \ No newline at end of file diff --git a/i18n/el.i18n.json b/i18n/el.i18n.json index 2f6196935..230943dad 100644 --- a/i18n/el.i18n.json +++ b/i18n/el.i18n.json @@ -682,5 +682,6 @@ "error-undefined": "Something went wrong", "error-ldap-login": "An error occurred while trying to login", "display-authentication-method": "Display Authentication Method", - "default-authentication-method": "Default Authentication Method" + "default-authentication-method": "Default Authentication Method", + "duplicate-board": "Duplicate Board" } \ No newline at end of file diff --git a/i18n/en-GB.i18n.json b/i18n/en-GB.i18n.json index 00b768690..3dab712e3 100644 --- a/i18n/en-GB.i18n.json +++ b/i18n/en-GB.i18n.json @@ -682,5 +682,6 @@ "error-undefined": "Something went wrong", "error-ldap-login": "An error occurred while trying to login", "display-authentication-method": "Display Authentication Method", - "default-authentication-method": "Default Authentication Method" + "default-authentication-method": "Default Authentication Method", + "duplicate-board": "Duplicate Board" } \ No newline at end of file diff --git a/i18n/en.i18n.json b/i18n/en.i18n.json index 5217127e6..4e4af38bb 100644 --- a/i18n/en.i18n.json +++ b/i18n/en.i18n.json @@ -686,5 +686,5 @@ "error-ldap-login": "An error occurred while trying to login", "display-authentication-method": "Display Authentication Method", "default-authentication-method": "Default Authentication Method", - "copy-tag": "Copy" + "duplicate-board": "Duplicate Board" } diff --git a/i18n/eo.i18n.json b/i18n/eo.i18n.json index 933f2a580..34fbc2832 100644 --- a/i18n/eo.i18n.json +++ b/i18n/eo.i18n.json @@ -682,5 +682,6 @@ "error-undefined": "Something went wrong", "error-ldap-login": "An error occurred while trying to login", "display-authentication-method": "Display Authentication Method", - "default-authentication-method": "Default Authentication Method" + "default-authentication-method": "Default Authentication Method", + "duplicate-board": "Duplicate Board" } \ No newline at end of file diff --git a/i18n/es-AR.i18n.json b/i18n/es-AR.i18n.json index a5c1fa962..b41236803 100644 --- a/i18n/es-AR.i18n.json +++ b/i18n/es-AR.i18n.json @@ -682,5 +682,6 @@ "error-undefined": "Something went wrong", "error-ldap-login": "An error occurred while trying to login", "display-authentication-method": "Display Authentication Method", - "default-authentication-method": "Default Authentication Method" + "default-authentication-method": "Default Authentication Method", + "duplicate-board": "Duplicate Board" } \ No newline at end of file diff --git a/i18n/es.i18n.json b/i18n/es.i18n.json index e09c68bb3..18bded971 100644 --- a/i18n/es.i18n.json +++ b/i18n/es.i18n.json @@ -682,5 +682,6 @@ "error-undefined": "Algo no está bien", "error-ldap-login": "Ocurrió un error al intentar acceder", "display-authentication-method": "Mostrar el método de autenticación", - "default-authentication-method": "Método de autenticación por defecto" + "default-authentication-method": "Método de autenticación por defecto", + "duplicate-board": "Duplicar tablero" } \ No newline at end of file diff --git a/i18n/eu.i18n.json b/i18n/eu.i18n.json index 7a3c5319c..6f1a2d317 100644 --- a/i18n/eu.i18n.json +++ b/i18n/eu.i18n.json @@ -682,5 +682,6 @@ "error-undefined": "Something went wrong", "error-ldap-login": "An error occurred while trying to login", "display-authentication-method": "Display Authentication Method", - "default-authentication-method": "Default Authentication Method" + "default-authentication-method": "Default Authentication Method", + "duplicate-board": "Duplicate Board" } \ No newline at end of file diff --git a/i18n/fa.i18n.json b/i18n/fa.i18n.json index 5f7945272..dbf043739 100644 --- a/i18n/fa.i18n.json +++ b/i18n/fa.i18n.json @@ -682,5 +682,6 @@ "error-undefined": "یک اشتباه رخ داده شده است", "error-ldap-login": "هنگام تلاش برای ورود به یک خطا رخ داد", "display-authentication-method": "نمایش نوع اعتبارسنجی", - "default-authentication-method": "نوع اعتبارسنجی پیشفرض" + "default-authentication-method": "نوع اعتبارسنجی پیشفرض", + "duplicate-board": "Duplicate Board" } \ No newline at end of file diff --git a/i18n/fi.i18n.json b/i18n/fi.i18n.json index 72ff4ef6b..5790a27a4 100644 --- a/i18n/fi.i18n.json +++ b/i18n/fi.i18n.json @@ -682,5 +682,6 @@ "error-undefined": "Jotain meni pieleen", "error-ldap-login": "Virhe tapahtui yrittäessä kirjautua sisään", "display-authentication-method": "Näytä kirjautumistapa", - "default-authentication-method": "Oletus kirjautumistapa" + "default-authentication-method": "Oletus kirjautumistapa", + "duplicate-board": "Tee kaksoiskappale taulusta" } \ No newline at end of file diff --git a/i18n/fr.i18n.json b/i18n/fr.i18n.json index f5b3faab8..9dd778d7b 100644 --- a/i18n/fr.i18n.json +++ b/i18n/fr.i18n.json @@ -682,5 +682,6 @@ "error-undefined": "Une erreur inconnue s'est produite", "error-ldap-login": "Une erreur s'est produite lors de la tentative de connexion", "display-authentication-method": "Afficher la méthode d'authentification", - "default-authentication-method": "Méthode d'authentification par défaut" + "default-authentication-method": "Méthode d'authentification par défaut", + "duplicate-board": "Duplicate Board" } \ No newline at end of file diff --git a/i18n/gl.i18n.json b/i18n/gl.i18n.json index 47fbe947a..3158eb9df 100644 --- a/i18n/gl.i18n.json +++ b/i18n/gl.i18n.json @@ -682,5 +682,6 @@ "error-undefined": "Something went wrong", "error-ldap-login": "An error occurred while trying to login", "display-authentication-method": "Display Authentication Method", - "default-authentication-method": "Default Authentication Method" + "default-authentication-method": "Default Authentication Method", + "duplicate-board": "Duplicate Board" } \ No newline at end of file diff --git a/i18n/he.i18n.json b/i18n/he.i18n.json index 489b4f61f..9818d9dae 100644 --- a/i18n/he.i18n.json +++ b/i18n/he.i18n.json @@ -682,5 +682,6 @@ "error-undefined": "מהו השתבש", "error-ldap-login": "אירעה שגיאה בעת ניסיון הכניסה", "display-authentication-method": "הצגת שיטת אימות", - "default-authentication-method": "שיטת אימות כבררת מחדל" + "default-authentication-method": "שיטת אימות כבררת מחדל", + "duplicate-board": "Duplicate Board" } \ No newline at end of file diff --git a/i18n/hi.i18n.json b/i18n/hi.i18n.json index 514dfa2f8..b58b59117 100644 --- a/i18n/hi.i18n.json +++ b/i18n/hi.i18n.json @@ -682,5 +682,6 @@ "error-undefined": "Something went wrong", "error-ldap-login": "An error occurred while trying to login", "display-authentication-method": "Display Authentication Method", - "default-authentication-method": "Default Authentication Method" + "default-authentication-method": "Default Authentication Method", + "duplicate-board": "Duplicate Board" } \ No newline at end of file diff --git a/i18n/hu.i18n.json b/i18n/hu.i18n.json index 229c9fb4f..aac675ca0 100644 --- a/i18n/hu.i18n.json +++ b/i18n/hu.i18n.json @@ -682,5 +682,6 @@ "error-undefined": "Valami hiba történt", "error-ldap-login": "Hiba történt bejelentkezés közben", "display-authentication-method": "Hitelelesítési mód mutatása", - "default-authentication-method": "Alapértelmezett hitelesítési mód" + "default-authentication-method": "Alapértelmezett hitelesítési mód", + "duplicate-board": "Duplicate Board" } \ No newline at end of file diff --git a/i18n/hy.i18n.json b/i18n/hy.i18n.json index e15b7c37c..82e17c076 100644 --- a/i18n/hy.i18n.json +++ b/i18n/hy.i18n.json @@ -682,5 +682,6 @@ "error-undefined": "Something went wrong", "error-ldap-login": "An error occurred while trying to login", "display-authentication-method": "Display Authentication Method", - "default-authentication-method": "Default Authentication Method" + "default-authentication-method": "Default Authentication Method", + "duplicate-board": "Duplicate Board" } \ No newline at end of file diff --git a/i18n/id.i18n.json b/i18n/id.i18n.json index 4d64b735a..291fc8943 100644 --- a/i18n/id.i18n.json +++ b/i18n/id.i18n.json @@ -682,5 +682,6 @@ "error-undefined": "Something went wrong", "error-ldap-login": "An error occurred while trying to login", "display-authentication-method": "Display Authentication Method", - "default-authentication-method": "Default Authentication Method" + "default-authentication-method": "Default Authentication Method", + "duplicate-board": "Duplicate Board" } \ No newline at end of file diff --git a/i18n/ig.i18n.json b/i18n/ig.i18n.json index 8603ec13a..403766562 100644 --- a/i18n/ig.i18n.json +++ b/i18n/ig.i18n.json @@ -682,5 +682,6 @@ "error-undefined": "Something went wrong", "error-ldap-login": "An error occurred while trying to login", "display-authentication-method": "Display Authentication Method", - "default-authentication-method": "Default Authentication Method" + "default-authentication-method": "Default Authentication Method", + "duplicate-board": "Duplicate Board" } \ No newline at end of file diff --git a/i18n/it.i18n.json b/i18n/it.i18n.json index 381766774..b089039f9 100644 --- a/i18n/it.i18n.json +++ b/i18n/it.i18n.json @@ -682,5 +682,6 @@ "error-undefined": "Qualcosa è andato storto", "error-ldap-login": "C'è stato un errore mentre provavi ad effettuare il login", "display-authentication-method": "Mostra il metodo di autenticazione", - "default-authentication-method": "Metodo di autenticazione predefinito" + "default-authentication-method": "Metodo di autenticazione predefinito", + "duplicate-board": "Duplicate Board" } \ No newline at end of file diff --git a/i18n/ja.i18n.json b/i18n/ja.i18n.json index 945d48eba..293262814 100644 --- a/i18n/ja.i18n.json +++ b/i18n/ja.i18n.json @@ -682,5 +682,6 @@ "error-undefined": "Something went wrong", "error-ldap-login": "An error occurred while trying to login", "display-authentication-method": "Display Authentication Method", - "default-authentication-method": "Default Authentication Method" + "default-authentication-method": "Default Authentication Method", + "duplicate-board": "Duplicate Board" } \ No newline at end of file diff --git a/i18n/ka.i18n.json b/i18n/ka.i18n.json index be5819dd5..2f870f011 100644 --- a/i18n/ka.i18n.json +++ b/i18n/ka.i18n.json @@ -682,5 +682,6 @@ "error-undefined": "Something went wrong", "error-ldap-login": "An error occurred while trying to login", "display-authentication-method": "Display Authentication Method", - "default-authentication-method": "Default Authentication Method" + "default-authentication-method": "Default Authentication Method", + "duplicate-board": "Duplicate Board" } \ No newline at end of file diff --git a/i18n/km.i18n.json b/i18n/km.i18n.json index ba8bcb3e5..b6c8f2726 100644 --- a/i18n/km.i18n.json +++ b/i18n/km.i18n.json @@ -682,5 +682,6 @@ "error-undefined": "Something went wrong", "error-ldap-login": "An error occurred while trying to login", "display-authentication-method": "Display Authentication Method", - "default-authentication-method": "Default Authentication Method" + "default-authentication-method": "Default Authentication Method", + "duplicate-board": "Duplicate Board" } \ No newline at end of file diff --git a/i18n/ko.i18n.json b/i18n/ko.i18n.json index d1cf878f7..1897495d4 100644 --- a/i18n/ko.i18n.json +++ b/i18n/ko.i18n.json @@ -682,5 +682,6 @@ "error-undefined": "Something went wrong", "error-ldap-login": "An error occurred while trying to login", "display-authentication-method": "Display Authentication Method", - "default-authentication-method": "Default Authentication Method" + "default-authentication-method": "Default Authentication Method", + "duplicate-board": "Duplicate Board" } \ No newline at end of file diff --git a/i18n/lv.i18n.json b/i18n/lv.i18n.json index 158f1f1cd..6dc190853 100644 --- a/i18n/lv.i18n.json +++ b/i18n/lv.i18n.json @@ -682,5 +682,6 @@ "error-undefined": "Something went wrong", "error-ldap-login": "An error occurred while trying to login", "display-authentication-method": "Display Authentication Method", - "default-authentication-method": "Default Authentication Method" + "default-authentication-method": "Default Authentication Method", + "duplicate-board": "Duplicate Board" } \ No newline at end of file diff --git a/i18n/mk.i18n.json b/i18n/mk.i18n.json index 10489c66c..0d96f00ba 100644 --- a/i18n/mk.i18n.json +++ b/i18n/mk.i18n.json @@ -682,5 +682,6 @@ "error-undefined": "Something went wrong", "error-ldap-login": "An error occurred while trying to login", "display-authentication-method": "Display Authentication Method", - "default-authentication-method": "Default Authentication Method" + "default-authentication-method": "Default Authentication Method", + "duplicate-board": "Duplicate Board" } \ No newline at end of file diff --git a/i18n/mn.i18n.json b/i18n/mn.i18n.json index 9c4932b5f..1a8194093 100644 --- a/i18n/mn.i18n.json +++ b/i18n/mn.i18n.json @@ -682,5 +682,6 @@ "error-undefined": "Something went wrong", "error-ldap-login": "An error occurred while trying to login", "display-authentication-method": "Display Authentication Method", - "default-authentication-method": "Default Authentication Method" + "default-authentication-method": "Default Authentication Method", + "duplicate-board": "Duplicate Board" } \ No newline at end of file diff --git a/i18n/nb.i18n.json b/i18n/nb.i18n.json index f61dd08a1..098900a92 100644 --- a/i18n/nb.i18n.json +++ b/i18n/nb.i18n.json @@ -682,5 +682,6 @@ "error-undefined": "Something went wrong", "error-ldap-login": "An error occurred while trying to login", "display-authentication-method": "Display Authentication Method", - "default-authentication-method": "Default Authentication Method" + "default-authentication-method": "Default Authentication Method", + "duplicate-board": "Duplicate Board" } \ No newline at end of file diff --git a/i18n/nl.i18n.json b/i18n/nl.i18n.json index 598aed994..7bb7602b1 100644 --- a/i18n/nl.i18n.json +++ b/i18n/nl.i18n.json @@ -682,5 +682,6 @@ "error-undefined": "Something went wrong", "error-ldap-login": "An error occurred while trying to login", "display-authentication-method": "Display Authentication Method", - "default-authentication-method": "Default Authentication Method" + "default-authentication-method": "Default Authentication Method", + "duplicate-board": "Duplicate Board" } \ No newline at end of file diff --git a/i18n/oc.i18n.json b/i18n/oc.i18n.json index 6b62bbd1e..9c61d0c13 100644 --- a/i18n/oc.i18n.json +++ b/i18n/oc.i18n.json @@ -682,5 +682,6 @@ "error-undefined": "Something went wrong", "error-ldap-login": "An error occurred while trying to login", "display-authentication-method": "Display Authentication Method", - "default-authentication-method": "Default Authentication Method" + "default-authentication-method": "Default Authentication Method", + "duplicate-board": "Duplicate Board" } \ No newline at end of file diff --git a/i18n/pl.i18n.json b/i18n/pl.i18n.json index b8235f135..a1cf4da57 100644 --- a/i18n/pl.i18n.json +++ b/i18n/pl.i18n.json @@ -682,5 +682,6 @@ "error-undefined": "Coś poszło nie tak", "error-ldap-login": "Wystąpił błąd w trakcie logowania", "display-authentication-method": "Wyświetl metodę logowania", - "default-authentication-method": "Domyślna metoda logowania" + "default-authentication-method": "Domyślna metoda logowania", + "duplicate-board": "Duplicate Board" } \ No newline at end of file diff --git a/i18n/pt-BR.i18n.json b/i18n/pt-BR.i18n.json index 5d82d841b..f92a5305e 100644 --- a/i18n/pt-BR.i18n.json +++ b/i18n/pt-BR.i18n.json @@ -682,5 +682,6 @@ "error-undefined": "Algo deu errado", "error-ldap-login": "Um erro ocorreu enquanto tentava entrar", "display-authentication-method": "Mostrar Método de Autenticação", - "default-authentication-method": "Método de Autenticação Padrão" + "default-authentication-method": "Método de Autenticação Padrão", + "duplicate-board": "Duplicate Board" } \ No newline at end of file diff --git a/i18n/pt.i18n.json b/i18n/pt.i18n.json index 225b5adb0..42aa4c5eb 100644 --- a/i18n/pt.i18n.json +++ b/i18n/pt.i18n.json @@ -682,5 +682,6 @@ "error-undefined": "Something went wrong", "error-ldap-login": "An error occurred while trying to login", "display-authentication-method": "Display Authentication Method", - "default-authentication-method": "Default Authentication Method" + "default-authentication-method": "Default Authentication Method", + "duplicate-board": "Duplicate Board" } \ No newline at end of file diff --git a/i18n/ro.i18n.json b/i18n/ro.i18n.json index 33564db8f..70fccc462 100644 --- a/i18n/ro.i18n.json +++ b/i18n/ro.i18n.json @@ -682,5 +682,6 @@ "error-undefined": "Something went wrong", "error-ldap-login": "An error occurred while trying to login", "display-authentication-method": "Display Authentication Method", - "default-authentication-method": "Default Authentication Method" + "default-authentication-method": "Default Authentication Method", + "duplicate-board": "Duplicate Board" } \ No newline at end of file diff --git a/i18n/ru.i18n.json b/i18n/ru.i18n.json index c677bd879..b02f22989 100644 --- a/i18n/ru.i18n.json +++ b/i18n/ru.i18n.json @@ -682,5 +682,6 @@ "error-undefined": "Что-то пошло не так", "error-ldap-login": "Ошибка при попытке авторизации", "display-authentication-method": "Показывать способ авторизации", - "default-authentication-method": "Способ авторизации по умолчанию" + "default-authentication-method": "Способ авторизации по умолчанию", + "duplicate-board": "Duplicate Board" } \ No newline at end of file diff --git a/i18n/sr.i18n.json b/i18n/sr.i18n.json index 0244a0e44..2a5aee109 100644 --- a/i18n/sr.i18n.json +++ b/i18n/sr.i18n.json @@ -682,5 +682,6 @@ "error-undefined": "Something went wrong", "error-ldap-login": "An error occurred while trying to login", "display-authentication-method": "Display Authentication Method", - "default-authentication-method": "Default Authentication Method" + "default-authentication-method": "Default Authentication Method", + "duplicate-board": "Duplicate Board" } \ No newline at end of file diff --git a/i18n/sv.i18n.json b/i18n/sv.i18n.json index bd9c3a507..46cfa2fde 100644 --- a/i18n/sv.i18n.json +++ b/i18n/sv.i18n.json @@ -682,5 +682,6 @@ "error-undefined": "Något gick fel", "error-ldap-login": "Ett fel uppstod när du försökte logga in", "display-authentication-method": "Visa autentiseringsmetod", - "default-authentication-method": "Standard autentiseringsmetod" + "default-authentication-method": "Standard autentiseringsmetod", + "duplicate-board": "Duplicate Board" } \ No newline at end of file diff --git a/i18n/sw.i18n.json b/i18n/sw.i18n.json index b82240fad..007d1fdb6 100644 --- a/i18n/sw.i18n.json +++ b/i18n/sw.i18n.json @@ -682,5 +682,6 @@ "error-undefined": "Something went wrong", "error-ldap-login": "An error occurred while trying to login", "display-authentication-method": "Display Authentication Method", - "default-authentication-method": "Default Authentication Method" + "default-authentication-method": "Default Authentication Method", + "duplicate-board": "Duplicate Board" } \ No newline at end of file diff --git a/i18n/ta.i18n.json b/i18n/ta.i18n.json index 9473d1943..ef85bad87 100644 --- a/i18n/ta.i18n.json +++ b/i18n/ta.i18n.json @@ -682,5 +682,6 @@ "error-undefined": "Something went wrong", "error-ldap-login": "An error occurred while trying to login", "display-authentication-method": "Display Authentication Method", - "default-authentication-method": "Default Authentication Method" + "default-authentication-method": "Default Authentication Method", + "duplicate-board": "Duplicate Board" } \ No newline at end of file diff --git a/i18n/th.i18n.json b/i18n/th.i18n.json index 17a54304e..6c8ea8e68 100644 --- a/i18n/th.i18n.json +++ b/i18n/th.i18n.json @@ -682,5 +682,6 @@ "error-undefined": "Something went wrong", "error-ldap-login": "An error occurred while trying to login", "display-authentication-method": "Display Authentication Method", - "default-authentication-method": "Default Authentication Method" + "default-authentication-method": "Default Authentication Method", + "duplicate-board": "Duplicate Board" } \ No newline at end of file diff --git a/i18n/tr.i18n.json b/i18n/tr.i18n.json index 6f6264537..89ad2ac0c 100644 --- a/i18n/tr.i18n.json +++ b/i18n/tr.i18n.json @@ -682,5 +682,6 @@ "error-undefined": "Bir şeyler yanlış gitti", "error-ldap-login": "Giriş yapmaya çalışırken bir hata oluştu", "display-authentication-method": "Display Authentication Method", - "default-authentication-method": "Default Authentication Method" + "default-authentication-method": "Default Authentication Method", + "duplicate-board": "Duplicate Board" } \ No newline at end of file diff --git a/i18n/uk.i18n.json b/i18n/uk.i18n.json index 79eec8474..d0298ea6e 100644 --- a/i18n/uk.i18n.json +++ b/i18n/uk.i18n.json @@ -682,5 +682,6 @@ "error-undefined": "Something went wrong", "error-ldap-login": "An error occurred while trying to login", "display-authentication-method": "Display Authentication Method", - "default-authentication-method": "Default Authentication Method" + "default-authentication-method": "Default Authentication Method", + "duplicate-board": "Duplicate Board" } \ No newline at end of file diff --git a/i18n/vi.i18n.json b/i18n/vi.i18n.json index 9d1800214..028f1e66e 100644 --- a/i18n/vi.i18n.json +++ b/i18n/vi.i18n.json @@ -682,5 +682,6 @@ "error-undefined": "Something went wrong", "error-ldap-login": "An error occurred while trying to login", "display-authentication-method": "Display Authentication Method", - "default-authentication-method": "Default Authentication Method" + "default-authentication-method": "Default Authentication Method", + "duplicate-board": "Duplicate Board" } \ No newline at end of file diff --git a/i18n/zh-CN.i18n.json b/i18n/zh-CN.i18n.json index 1fde84fb4..510243b34 100644 --- a/i18n/zh-CN.i18n.json +++ b/i18n/zh-CN.i18n.json @@ -682,5 +682,6 @@ "error-undefined": "出了点问题", "error-ldap-login": "尝试登陆时出错", "display-authentication-method": "显示认证方式", - "default-authentication-method": "缺省认证方式" + "default-authentication-method": "缺省认证方式", + "duplicate-board": "Duplicate Board" } \ No newline at end of file diff --git a/i18n/zh-TW.i18n.json b/i18n/zh-TW.i18n.json index 0f14c4a93..9cc6878de 100644 --- a/i18n/zh-TW.i18n.json +++ b/i18n/zh-TW.i18n.json @@ -682,5 +682,6 @@ "error-undefined": "Something went wrong", "error-ldap-login": "An error occurred while trying to login", "display-authentication-method": "Display Authentication Method", - "default-authentication-method": "Default Authentication Method" + "default-authentication-method": "Default Authentication Method", + "duplicate-board": "Duplicate Board" } \ No newline at end of file diff --git a/models/import.js b/models/import.js index ddc1a1d09..5e4336690 100644 --- a/models/import.js +++ b/models/import.js @@ -39,7 +39,8 @@ Meteor.methods({ const addData = {}; addData.membersMapping = wekanMembersMapper.getMembersToMap(data); const creator = new WekanCreator(addData); - data.title = `${data.title } - ${ TAPi18n.__('copy-tag')}`; + //data.title = `${data.title } - ${ TAPi18n.__('copy-tag')}`; + data.title = `${data.title}`; return creator.create(data, currentBoardId); }, }); From 53e76288cb7cb7d13ac6ff6bc112e30163fa431b Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 6 Apr 2019 13:52:05 +0300 Subject: [PATCH 46/54] [Add Duplicate Board tooltip, and remove adding text "Copy" to duplicated board](https://github.com/wekan/wekan/commit/0f15b6d1982c383f76e8411cb501ff27e8febd42). Thanks to xet7 ! --- CHANGELOG.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9ee3cb197..0a8cb2007 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,15 +4,17 @@ This release adds the following new features: - [Duplicate Board](https://github.com/wekan/wekan/issues/2257). Related #2225. Thanks to Angtrim. +- [Add Duplicate Board tooltip, and remove adding text "Copy" to duplicated board](https://github.com/wekan/wekan/commit/0f15b6d1982c383f76e8411cb501ff27e8febd42). + Thanks to xet7. -This release fixes the following bugs: +amd fixes the following bugs: - [Add proper variables for unjoin card](https://github.com/wekan/wekan/pull/2313). Thanks to chotaire. - [Center reduce left margin in card view on mobile browser](https://github.com/wekan/wekan/pull/2314). Thanks to hupptechnologies. - [Remove not needed ARGS from Dockerfile to reduce amount of Docker layers](https://github.com/wekan/wekan/issues/2301). - Thanks to folhabranca. + Thanks to folhabranca and xet7. - [Fix Swimlane Rules don't work](https://github.com/wekan/wekan/issues/2225). Thanks to Angtrim. From ad241b9f846cefa14dec6fd979870a715d774705 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 6 Apr 2019 13:54:32 +0300 Subject: [PATCH 47/54] v2.58 --- CHANGELOG.md | 2 +- Stackerfile.yml | 2 +- package.json | 2 +- sandstorm-pkgdef.capnp | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0a8cb2007..9fd8ec461 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -# Upcoming Wekan release +# v2.58 2019-04-06 Wekan release This release adds the following new features: diff --git a/Stackerfile.yml b/Stackerfile.yml index 0b53ab880..f01bea820 100644 --- a/Stackerfile.yml +++ b/Stackerfile.yml @@ -1,5 +1,5 @@ appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928 -appVersion: "v2.57.0" +appVersion: "v2.58.0" files: userUploads: - README.md diff --git a/package.json b/package.json index 690b5cc33..d868f244b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v2.57.0", + "version": "v2.58.0", "description": "Open-Source kanban", "private": true, "scripts": { diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp index 7a3b55d80..b47cf8b26 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 = 259, + appVersion = 260, # Increment this for every release. - appMarketingVersion = (defaultText = "2.57.0~2019-04-02"), + appMarketingVersion = (defaultText = "2.58.0~2019-04-06"), # Human-readable presentation of the app version. minUpgradableAppVersion = 0, From 4be6719db4e15e7270a8782f57534ccf75d8f7d7 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 6 Apr 2019 14:07:55 +0300 Subject: [PATCH 48/54] - [Add variables for activity notifications, Fixes #2285](https://github.com/wekan/wekan/pull/2320). Thanks to rinnaz ! Closes #2285 --- CHANGELOG.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9fd8ec461..f3a0bc21a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,12 @@ +# Upcoming Wekan release + +This release fixes the following bugs: + +- [Add variables for activity notifications, Fixes #2285](https://github.com/wekan/wekan/pull/2320). + Thanks to rinnaz. + +Thanks to above GitHub users for their contributions and translators for their translations. + # v2.58 2019-04-06 Wekan release This release adds the following new features: @@ -7,7 +16,7 @@ This release adds the following new features: - [Add Duplicate Board tooltip, and remove adding text "Copy" to duplicated board](https://github.com/wekan/wekan/commit/0f15b6d1982c383f76e8411cb501ff27e8febd42). Thanks to xet7. -amd fixes the following bugs: +and fixes the following bugs: - [Add proper variables for unjoin card](https://github.com/wekan/wekan/pull/2313). Thanks to chotaire. From 753ce8e119027de7073144d7c68c00ca8493abfd Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 6 Apr 2019 14:15:40 +0300 Subject: [PATCH 49/54] v2.59 --- CHANGELOG.md | 2 +- Stackerfile.yml | 2 +- package.json | 2 +- sandstorm-pkgdef.capnp | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f3a0bc21a..c9e7dad7b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -# Upcoming Wekan release +# v2.59 2019-04-06 Wekan release This release fixes the following bugs: diff --git a/Stackerfile.yml b/Stackerfile.yml index f01bea820..5b0761ed5 100644 --- a/Stackerfile.yml +++ b/Stackerfile.yml @@ -1,5 +1,5 @@ appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928 -appVersion: "v2.58.0" +appVersion: "v2.59.0" files: userUploads: - README.md diff --git a/package.json b/package.json index d868f244b..5803539bf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v2.58.0", + "version": "v2.59.0", "description": "Open-Source kanban", "private": true, "scripts": { diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp index b47cf8b26..868877765 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 = 260, + appVersion = 261, # Increment this for every release. - appMarketingVersion = (defaultText = "2.58.0~2019-04-06"), + appMarketingVersion = (defaultText = "2.59.0~2019-04-06"), # Human-readable presentation of the app version. minUpgradableAppVersion = 0, From 9bff4e061e5d74d2bdef60b626fb4308f065cbc5 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sun, 7 Apr 2019 18:27:17 +0300 Subject: [PATCH 50/54] Update translations. --- i18n/de.i18n.json | 2 +- i18n/fr.i18n.json | 2 +- i18n/ru.i18n.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/i18n/de.i18n.json b/i18n/de.i18n.json index e76839bc8..6f922e4fd 100644 --- a/i18n/de.i18n.json +++ b/i18n/de.i18n.json @@ -683,5 +683,5 @@ "error-ldap-login": "Es ist ein Fehler beim Anmelden aufgetreten", "display-authentication-method": "Anzeige Authentifizierungsverfahren", "default-authentication-method": "Standardauthentifizierungsverfahren", - "duplicate-board": "Duplicate Board" + "duplicate-board": "Board duplizieren" } \ No newline at end of file diff --git a/i18n/fr.i18n.json b/i18n/fr.i18n.json index 9dd778d7b..bc7614d57 100644 --- a/i18n/fr.i18n.json +++ b/i18n/fr.i18n.json @@ -683,5 +683,5 @@ "error-ldap-login": "Une erreur s'est produite lors de la tentative de connexion", "display-authentication-method": "Afficher la méthode d'authentification", "default-authentication-method": "Méthode d'authentification par défaut", - "duplicate-board": "Duplicate Board" + "duplicate-board": "Dupliquer le tableau" } \ No newline at end of file diff --git a/i18n/ru.i18n.json b/i18n/ru.i18n.json index b02f22989..c79c43fc7 100644 --- a/i18n/ru.i18n.json +++ b/i18n/ru.i18n.json @@ -683,5 +683,5 @@ "error-ldap-login": "Ошибка при попытке авторизации", "display-authentication-method": "Показывать способ авторизации", "default-authentication-method": "Способ авторизации по умолчанию", - "duplicate-board": "Duplicate Board" + "duplicate-board": "Клонировать доску" } \ No newline at end of file From eada773048e12800606e24dc8fd5b63db407b8e5 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Mon, 8 Apr 2019 09:03:55 +0300 Subject: [PATCH 51/54] [Fix: Description of Board is out of visible after Feature "Duplicate Board"](https://github.com/wekan/wekan/issues/2324). Thanks to sfahrenholz and xet7 ! Closes #2324 --- client/components/boards/boardsList.jade | 9 +++++---- client/components/boards/boardsList.styl | 1 + 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/client/components/boards/boardsList.jade b/client/components/boards/boardsList.jade index 0da926ef5..70b29c493 100644 --- a/client/components/boards/boardsList.jade +++ b/client/components/boards/boardsList.jade @@ -22,15 +22,16 @@ template(name="boardList") i.fa.js-star-board( class="fa-star{{#if isStarred}} is-star-active{{else}}-o{{/if}}" title="{{_ 'star-board-title'}}") - i.fa.js-clone-board( - class="fa-clone" - title="{{_ 'duplicate-board'}}") + p.board-list-item-desc= description if hasSpentTimeCards i.fa.js-has-spenttime-cards( class="fa-circle{{#if hasOvertimeCards}} has-overtime-card-active{{else}} no-overtime-card-active{{/if}}" title="{{#if hasOvertimeCards}}{{_ 'has-overtime-cards'}}{{else}}{{_ 'has-spenttime-cards'}}{{/if}}") + i.fa.js-clone-board( + class="fa-clone" + title="{{_ 'duplicate-board'}}") + - p.board-list-item-desc= description template(name="boardListHeaderBar") h1 {{_ 'my-boards'}} diff --git a/client/components/boards/boardsList.styl b/client/components/boards/boardsList.styl index 9f0b204e7..7e8344118 100644 --- a/client/components/boards/boardsList.styl +++ b/client/components/boards/boardsList.styl @@ -93,6 +93,7 @@ $spaceBetweenTiles = 16px .is-star-active color: white + .fa-clone position: absolute; bottom: 0 From 6d2b778ac518df12fedf49468b1a19093c4c5393 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Mon, 8 Apr 2019 09:07:58 +0300 Subject: [PATCH 52/54] [Fix: Description of Board is out of visible after Feature "Duplicate Board"](https://github.com/wekan/wekan/issues/2324). Thanks to sfahrenholz and xet7 ! Closes #2324 --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c9e7dad7b..26aa1981f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,12 @@ +# Upcoming Wekan release + +This release fixes the following bugs: + +- [Fix: Description of Board is out of visible after Feature "Duplicate Board"](https://github.com/wekan/wekan/issues/2324). + Thanks to sfahrenholz and xet7. + +Thanks to above GitHub users for their contributions and translators for their translations. + # v2.59 2019-04-06 Wekan release This release fixes the following bugs: From 6af7d782d423b2c4ec3e4b825ec15749dc798957 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Mon, 8 Apr 2019 10:29:29 +0300 Subject: [PATCH 53/54] Update translations. --- i18n/sv.i18n.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/i18n/sv.i18n.json b/i18n/sv.i18n.json index 46cfa2fde..c7df9f926 100644 --- a/i18n/sv.i18n.json +++ b/i18n/sv.i18n.json @@ -18,7 +18,7 @@ "act-uncompleteChecklist": "ofullbordade checklista __checklist__ på kort __card__ i lista __list__ i simbana __swimlane__ på tavla __board__", "act-addComment": "kommenterade på kort __card__: __comment__ i lista __list__ i simbana __swimlane__ på tavla __board__", "act-createBoard": "skapade tavla __board__", - "act-createSwimlane": "created swimlane __swimlane__ to board __board__", + "act-createSwimlane": "skapade simbana __swimlane__ till tavla __board__", "act-createCard": "skapade kort __card__ i lista __list__ i simbana __swimlane__ på tavla __board__", "act-createCustomField": "skapade anpassat fält __customField__ på kort __card__ i lista __list__ i simbana __swimlane__ på tavla __board__", "act-createList": "la till lista __list__ på tavla __board__", @@ -31,7 +31,7 @@ "act-importCard": "importerade kort __card__ i lista __list__ i simbana __swimlane__ på tavla __board__", "act-importList": "importerade lista __list__ i simbana __swimlane__ på tavla __board__", "act-joinMember": "la till medlem __member__ på kort __card__ i lista __list__ i simbana __swimlane__ på tavla __board__", - "act-moveCard": "moved card __card__ at board __board__ from list __oldList__ at swimlane __oldSwimlane__ to list __list__ at swimlane __swimlane__", + "act-moveCard": "flyttade kort __card__ på tavla __board__ från lista __oldList__ i sambana __oldSwimlane__ till lista list __list__ i simbana __swimlane__", "act-moveCardToOtherBoard": "flyttade kort __card__ från lista __oldList__ i simbana __oldSwimlane__ på tavla __oldBoard__ till lista __list__ i simbana __swimlane__ på tavla __board__", "act-removeBoardMember": "borttagen medlem __member__  från tavla __board__", "act-restoredCard": "återställde kort __card__ till lista __lis__ i simbana __swimlane__ på tavla __board__", @@ -683,5 +683,5 @@ "error-ldap-login": "Ett fel uppstod när du försökte logga in", "display-authentication-method": "Visa autentiseringsmetod", "default-authentication-method": "Standard autentiseringsmetod", - "duplicate-board": "Duplicate Board" + "duplicate-board": "Dubbletttavla" } \ No newline at end of file From a43237d4f9a93381621f3f86f6b5701fce3c8d4d Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Mon, 8 Apr 2019 10:31:48 +0300 Subject: [PATCH 54/54] v2.60 --- CHANGELOG.md | 2 +- Stackerfile.yml | 2 +- package.json | 2 +- sandstorm-pkgdef.capnp | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 26aa1981f..a74455580 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -# Upcoming Wekan release +# v2.60 2019-04-08 Wekan release This release fixes the following bugs: diff --git a/Stackerfile.yml b/Stackerfile.yml index 5b0761ed5..08d41a31b 100644 --- a/Stackerfile.yml +++ b/Stackerfile.yml @@ -1,5 +1,5 @@ appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928 -appVersion: "v2.59.0" +appVersion: "v2.60.0" files: userUploads: - README.md diff --git a/package.json b/package.json index 5803539bf..c74b3904a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v2.59.0", + "version": "v2.60.0", "description": "Open-Source kanban", "private": true, "scripts": { diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp index 868877765..99cec39e3 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 = 261, + appVersion = 262, # Increment this for every release. - appMarketingVersion = (defaultText = "2.59.0~2019-04-06"), + appMarketingVersion = (defaultText = "2.60.0~2019-04-08"), # Human-readable presentation of the app version. minUpgradableAppVersion = 0,