Compare commits

...
34 Commits
Author SHA1 Message Date
Lauri Ojansivu 329c8d64a8 v2.17 2019-02-04 21:47:50 +02:00
Lauri Ojansivu 698ce8f0e6 Update translations (sv). 2019-02-04 21:07:36 +02:00
Lauri Ojansivu b06e11ba09 Merge pull request #2164 from gil0109/edge
Fix trailing spaces for OIDC fix
2019-02-04 20:23:41 +02:00
Karim Gillani d689a7408b Fix trailing spaces 2019-02-04 09:36:21 -08:00
Lauri Ojansivu c899218fb9 Merge pull request #2162 from gil0109/edge
OIDC BoardView Fix
2019-02-04 19:30:24 +02:00
Karim Gillani c42f2a05d2 OIDC BoardView Fix 2019-02-04 08:24:10 -08:00
Lauri Ojansivu 70ed552e1a Update translations. 2019-02-03 15:45:00 +02:00
Lauri Ojansivu 9a07649b8a v2.16 2019-02-03 05:18:50 +02:00
Lauri Ojansivu 9a6ac544dd - Fix Sandstorm open card on public board, part 2.
Thanks to ChronikEwok !
2019-02-03 05:12:50 +02:00
Lauri Ojansivu 06a1e26655 Add missing text. 2019-02-03 03:06:54 +02:00
Lauri Ojansivu 626e7c2c61 v2.15 2019-02-03 02:31:51 +02:00
Lauri Ojansivu a7aeb491ba Update changelog. 2019-02-03 02:25:14 +02:00
Lauri Ojansivu 7ba8f72d7b - [Fix: Not displaying card content of public board: Snap, Docker and Sandstorm Shared Wekan Board
Link](https://github.com/wekan/wekan/issues/1623) with
  [code from ChronikEwok](https://github.com/ChronikEwok/wekan/commit/cad9b20451bb6149bfb527a99b5001873b06c3de).

Thanks to ChronikEwok !

Closes #1623
2019-02-03 02:18:35 +02:00
Lauri Ojansivu d0f74d7a99 Add missing text. 2019-02-02 21:55:50 +02:00
Lauri Ojansivu 7f33fa5368 v2.14 2019-02-02 21:00:16 +02:00
Lauri Ojansivu 0ab97266f6 - [Fix Sandstorm export board from web](https://github.com/wekan/wekan/issues/2157).
- [Fix Error when logging in to Wekan REST API when using Sandstorm Wekan](https://github.com/wekan/wekan/issues/1279).
  Sandstorm API works this way: Make API key, and from that key copy API URL and API KEY to below. It saves Wekan board to file.
  `curl http://Bearer:APIKEY@api-12345.local.sandstorm.io:6080/api/boards/sandstorm/export?authToken=#APIKEY > wekanboard.json`
  If later API key does not work, you need to remove it and make a new one.

Thanks to xet7 !
2019-02-02 20:57:47 +02:00
Lauri Ojansivu 32f896f19d - [Fix Sandstorm export board from web](https://github.com/wekan/wekan/issues/2157).
- [Fix Error when logging in to Wekan REST API when using Sandstorm Wekan](https://github.com/wekan/wekan/issues/1279).
  Sandstorm API works this way: Make API key, and from that key copy API URL and API KEY to below. It saves Wekan board to file.
  `curl http://Bearer:APIKEY@api-12345.local.sandstorm.io:6080/api/boards/sandstorm/export?authToken=#APIKEY > wekanboard.json`
  If later API key does not work, you need to remove it and make a new one.

Closes #2157,
closes #1279
2019-02-02 20:52:09 +02:00
Lauri Ojansivu 6f0e0748e1 v2.13 2019-02-01 17:15:15 +02:00
Lauri Ojansivu 8e5fc13ba4 Update changelog with latest changes from bentiss. 2019-02-01 17:09:05 +02:00
Lauri Ojansivu 7a35099fb9 - When writing to minicard, press Shift-Enter on minicard to go to next line below,
to continue writing on same minicard 2nd line.

Thanks to bentiss!
2019-02-01 17:03:59 +02:00
Lauri Ojansivu d08bee6817 Merge branch 'bentiss-infinite-scrolling' into edge 2019-02-01 16:54:41 +02:00
Lauri Ojansivu 4fc96904d6 Merge branch 'infinite-scrolling' of https://github.com/bentiss/wekan into bentiss-infinite-scrolling 2019-02-01 16:05:46 +02:00
Benjamin Tissoires 66bc1f28dd Use infinite-scrolling on lists
This allows to reduce the loading time of a big board.

Note that there is an infinite scroll implementation in the mixins,
but this doesn't fit well as the cards in the list can have arbitrary
height.

The idea to rely on the visibility of a spinner is based on
http://www.meteorpedia.com/read/Infinite_Scrolling
2019-02-01 14:58:02 +01:00
Benjamin Tissoires 30d082e709 Use infinite-scrolling on lists
This allows to reduce the loading time of a big board.

Note that there is an infinite scroll implementation in the mixins,
but this doesn't fit well as the cards in the list can have arbitrary
height.

The idea to rely on the visibility of a spinner is based on
http://www.meteorpedia.com/read/Infinite_Scrolling
2019-02-01 13:53:45 +01:00
Lauri Ojansivu 1b11123797 v2.12 2019-01-31 19:32:27 +02:00
Lauri Ojansivu 654c2add0d - [Bumped the salleman oidc packages versions to include an upstream bug fix](https://github.com/wekan/wekan/commit/361faa6646556de68ad78dc90d9eb9f78956ce0f).
Thanks to danpatdav !
2019-01-31 19:19:47 +02:00
Lauri Ojansivu 6d179d6d3d Merge pull request #2149 from danpatdav/salleman-1.0.10
Bumped the salleman oidc packages versions to include an upstream bug…
2019-01-31 19:10:03 +02:00
Daniel Davis 361faa6646 Bumped the salleman oidc packages versions to include an upstream bug fix 2019-01-31 11:45:55 -05:00
Lauri Ojansivu 7fc22ba0b7 v2.11 2019-01-31 14:27:36 +02:00
Lauri Ojansivu 9c82e6ab68 Update translations. 2019-01-31 14:23:57 +02:00
Lauri Ojansivu 78c18d4ffe Update changelog. 2019-01-31 14:23:23 +02:00
Lauri Ojansivu 978dafc62b - Fix: Bug: Not logged in public board page has calendar.
Thanks to xet7 !

Closes #2061
2019-01-31 14:19:14 +02:00
Lauri Ojansivu 8919d8fb7d Fix typo. 2019-01-30 18:52:14 +02:00
Lauri Ojansivu cdb7dd9175 Fix typo. 2019-01-30 18:49:38 +02:00
16 changed files with 267 additions and 89 deletions

No files matched your search

+2 -2
View File
@@ -143,8 +143,8 @@ reload@1.1.11
retry@1.0.9
routepolicy@1.0.12
rzymek:fullcalendar@3.8.0
salleman:accounts-oidc@1.0.9
salleman:oidc@1.0.9
salleman:accounts-oidc@1.0.10
salleman:oidc@1.0.10
service-configuration@1.0.11
session@1.1.7
sha@1.0.9
+76 -2
View File
@@ -1,13 +1,87 @@
# v2.17 2019-02-04 Wekan release
This release fixes the following bugs:
- [OIDC/OAuth2 BoardView Fix](https://github.com/wekan/wekan/issues/1874).
Thanks to GitHub gil0109 for contributions, and translator for their translations.
# v2.16 2019-02-03 Wekan release
This release fixes the following bugs:
- [Part 2](https://github.com/ChronikEwok/wekan/commit/9a6ac544dd5618e58ce107352124fd9b495e5c30):
[Fix: Not displaying card content of public board: Snap, Docker and Sandstorm Shared Wekan Board
Link](https://github.com/wekan/wekan/issues/1623) with
[code from ChronikEwok](https://github.com/ChronikEwok/wekan/commit/cad9b20451bb6149bfb527a99b5001873b06c3de).
Thanks to GitHub user ChronikEwok for contributions.
# v2.15 2019-02-03 Wekan release
This release fixes the following bugs:
- [Fix: Not displaying card content of public board: Snap, Docker and Sandstorm Shared Wekan Board
Link](https://github.com/wekan/wekan/issues/1623) with
[code from ChronikEwok](https://github.com/ChronikEwok/wekan/commit/cad9b20451bb6149bfb527a99b5001873b06c3de).
Thanks to GitHub user ChronikEwok for contributions.
# v2.14 2019-02-02 Wekan release
This release fixes the following bugs:
- [Fix Sandstorm export board from web](https://github.com/wekan/wekan/issues/2157).
- [Fix Error when logging in to Wekan REST API when using Sandstorm Wekan](https://github.com/wekan/wekan/issues/1279).
Sandstorm API works this way: Make API key, and from that key copy API URL and API KEY to below. It saves Wekan board to file.
`curl http://Bearer:APIKEY@api-12345.local.sandstorm.io:6080/api/boards/sandstorm/export?authToken=#APIKEY > wekanboard.json`
If later API key does not work, you need to remove it and make a new one.
Thanks to GitHub user xet7 for contributions.
# v2.13 2019-02-01 Wekan release
This release adds the following new features with Apache I-CLA, thanks to bentiss:
- [Use infinite-scrolling on lists](https://github.com/wekan/wekan/pull/2144).
This allows to reduce the loading time of a big board.
Note that there is an infinite scroll implementation in the mixins,
but this doesn't fit well as the cards in the list can have arbitrary
height.
The idea to rely on the visibility of a spinner is based on
http://www.meteorpedia.com/read/Infinite_Scrolling
- [When writing to minicard, press Shift-Enter on minicard to go to next line
below](https://github.com/wekan/wekan/commit/7a35099fb9778d5f3656a57c74af426cfb20fba3),
to continue writing on same minicard 2nd line.
Thanks to GitHub user bentiss for contributions.
# v2.12 2019-01-31 Wekan release
This release fixes the following bugs:
- [Bumped the salleman oidc packages versions to include an upstream bug fix](https://github.com/wekan/wekan/commit/361faa6646556de68ad78dc90d9eb9f78956ce0f).
Thanks to GitHub user danpatdav for contributions.
# v2.11 2019-01-31 Wekan release
This release fixes the following bugs:
- [Fix: Bug: Not logged in public board page has calendar](https://github.com/wekan/wekan/issues/2061). Thanks to xet7.
Thanks to above GitHub users and translators for contributions.
# v2.10 2019-01-30 Wekan release
This release adds the following new features:
- Translations: Add Macedonian. [Copied Bulgarian to Macedonian](https://github.com/wekan/wekan/commit/6e4a6515e00fe68b8615d850cfb3cb290418e176)
so that required changes will be faster to add. Thanks to translators and therampagerado.
so that required changes will be faster to add. Thanks to translators and therampagerado;
and fixes the following bugs:
- Revert [Sandstorm API changes](https://github.com/wekan/wekan/commit/be03a191c4321c2f80116c0ee1ae6c826d882535
- Revert [Sandstorm API changes](https://github.com/wekan/wekan/commit/be03a191c4321c2f80116c0ee1ae6c826d882535)
that were done at [Wekan v2.05](https://github.com/wekan/wekan/blob/devel/CHANGELOG.md#v205-2019-01-27-wekan-release)
to fix #2143. Thanks to pantraining and xet7.
+1 -1
View File
@@ -1,5 +1,5 @@
appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
appVersion: "v2.10.0"
appVersion: "v2.17.0"
files:
userUploads:
- README.md
+5 -4
View File
@@ -29,7 +29,8 @@ template(name="boardBody")
+calendarView
template(name="calendarView")
.calendar-view.swimlane
if currentCard
+cardDetails(currentCard)
+fullcalendar(calendarOptions)
if isViewCalendar
.calendar-view.swimlane
if currentCard
+cardDetails(currentCard)
+fullcalendar(calendarOptions)
+6 -1
View File
@@ -134,7 +134,7 @@ BlazeComponent.extendComponent({
isViewCalendar() {
const currentUser = Meteor.user();
if (!currentUser) return true;
if (!currentUser) return false;
return (currentUser.profile.boardView === 'board-view-cal');
},
@@ -264,4 +264,9 @@ BlazeComponent.extendComponent({
},
};
},
isViewCalendar() {
const currentUser = Meteor.user();
if (!currentUser) return false;
return (currentUser.profile.boardView === 'board-view-cal');
},
}).register('calendarView');
+3
View File
@@ -211,6 +211,9 @@
max-height: 250px
overflow: hidden
.sk-spinner-list
margin-top: unset !important
list-header-color(background, color...)
border-bottom: 6px solid background
+11 -1
View File
@@ -4,7 +4,7 @@ template(name="listBody")
if cards.count
+inlinedForm(autoclose=false position="top")
+addCardForm(listId=_id position="top")
each (cards (idOrNull ../../_id))
each (cardsWithLimit (idOrNull ../../_id))
a.minicard-wrapper.js-minicard(href=absoluteUrl
class="{{#if cardIsSelected}}is-selected{{/if}}"
class="{{#if MultiSelection.isSelected _id}}is-checked{{/if}}")
@@ -12,6 +12,16 @@ template(name="listBody")
.materialCheckBox.multi-selection-checkbox.js-toggle-multi-selection(
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
if canSeeAddCard
+inlinedForm(autoclose=false position="bottom")
+addCardForm(listId=_id position="bottom")
+82 -1
View File
@@ -1,6 +1,34 @@
const subManager = new SubsManager();
const InfiniteScrollIter = 10;
BlazeComponent.extendComponent({
onCreated() {
// for infinite scrolling
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];
},
@@ -60,6 +88,13 @@ BlazeComponent.extendComponent({
type: 'cardType-card',
});
// if the displayed card count is less than the total cards in the list,
// we need to increment the displayed card count to prevent the spinner
// to appear
const cardCount = this.data().cards(this.idOrNull(swimlaneId)).count();
if (this.cardlimit.get() < cardCount) {
this.cardlimit.set(this.cardlimit.get() + InfiniteScrollIter);
}
// In case the filter is active we need to add the newly inserted card in
// the list of exceptions -- cards that are not filtered. Otherwise the
@@ -119,6 +154,52 @@ BlazeComponent.extendComponent({
return undefined;
},
cardsWithLimit(swimlaneId) {
const limit = this.cardlimit.get();
const selector = {
listId: this.currentData()._id,
archived: false,
};
if (swimlaneId)
selector.swimlaneId = swimlaneId;
return Cards.find(Filter.mongoSelector(selector), {
sort: ['sort'],
limit,
});
},
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();
},
@@ -179,7 +260,7 @@ BlazeComponent.extendComponent({
pressKey(evt) {
// Pressing Enter should submit the card
if (evt.keyCode === 13) {
if (evt.keyCode === 13 && !evt.shiftKey) {
evt.preventDefault();
const $form = $(evt.currentTarget).closest('form');
// XXX For some reason $form.submit() does not work (it's probably a bug
+11 -7
View File
@@ -3,14 +3,18 @@ const { calculateIndex, enableClickOnTouch } = Utils;
function currentCardIsInThisList(listId, swimlaneId) {
const currentCard = Cards.findOne(Session.get('currentCard'));
const currentUser = Meteor.user();
if (currentUser.profile.boardView === 'board-view-lists')
return currentCard && currentCard.listId === listId;
else if (currentUser.profile.boardView === 'board-view-swimlanes')
if (currentUser && currentUser.profile.boardView === 'board-view-swimlanes')
return currentCard && currentCard.listId === listId && currentCard.swimlaneId === swimlaneId;
else if (currentUser.profile.boardView === 'board-view-cal')
return currentCard;
else
return false;
else // Default view: board-view-lists
return currentCard && currentCard.listId === listId;
// https://github.com/wekan/wekan/issues/1623
// https://github.com/ChronikEwok/wekan/commit/cad9b20451bb6149bfb527a99b5001873b06c3de
// TODO: In public board, if you would like to switch between List/Swimlane view, you could
// 1) If there is no view cookie, save to cookie board-view-lists
// board-view-lists / board-view-swimlanes / board-view-cal
// 2) If public user changes clicks board-view-lists then change view and
// then change view and save cookie with view value
// without using currentuser above, because currentuser is null.
}
function initSortable(boardComponent, $listsDom) {
+1 -1
View File
@@ -494,7 +494,7 @@
"OS_Freemem": "Свободная память",
"OS_Loadavg": "Средняя загрузка",
"OS_Platform": "Платформа",
"OS_Release": "Релиз",
"OS_Release": "Версия ядра",
"OS_Totalmem": "Общая память",
"OS_Type": "Тип ОС",
"OS_Uptime": "Время работы",
+34 -34
View File
@@ -82,16 +82,16 @@
"archive": "Flytta till Arkiv",
"archive-all": "Flytta alla till Arkiv",
"archive-board": "Flytta Anslagstavla till Arkiv",
"archive-card": "Move Card to Archive",
"archive-list": "Move List to Archive",
"archive-card": "Flytta Kort till Arkiv",
"archive-list": "Flytta Lista till Arkiv",
"archive-swimlane": "Move Swimlane to Archive",
"archive-selection": "Move selection to Archive",
"archive-selection": "Flytta markerade till Arkiv",
"archiveBoardPopup-title": "Move Board to Archive?",
"archived-items": "Arkivera",
"archived-items": "Arkiv",
"archived-boards": "Boards in Archive",
"restore-board": "Återställ anslagstavla",
"no-archived-boards": "No Boards in Archive.",
"archives": "Arkivera",
"archives": "Arkiv",
"assign-member": "Tilldela medlem",
"attached": "bifogad",
"attachment": "Bilaga",
@@ -118,7 +118,7 @@
"board-view-lists": "Listor",
"bucket-example": "Gilla \"att-göra-innan-jag-dör-lista\" till exempel",
"cancel": "Avbryt",
"card-archived": "This card is moved to Archive.",
"card-archived": "Detta kort är flyttat till Arkiv.",
"board-archived": "Den här anslagstavlan är flyttad till Arkiv.",
"card-comments-title": "Detta kort har %s kommentar.",
"card-delete-notice": "Ta bort är permanent. Du kommer att förlora alla åtgärder i samband med detta kort.",
@@ -170,9 +170,9 @@
"color-black": "svart",
"color-blue": "blå",
"color-crimson": "crimson",
"color-darkgreen": "darkgreen",
"color-gold": "gold",
"color-gray": "gray",
"color-darkgreen": "mörkgrön",
"color-gold": "guld",
"color-gray": "grå",
"color-green": "grön",
"color-indigo": "indigo",
"color-lime": "lime",
@@ -186,11 +186,11 @@
"color-plum": "plum",
"color-purple": "lila",
"color-red": "röd",
"color-saddlebrown": "saddlebrown",
"color-saddlebrown": "sadelbrun",
"color-silver": "silver",
"color-sky": "himmel",
"color-slateblue": "slateblue",
"color-white": "white",
"color-white": "vit",
"color-yellow": "gul",
"unset-color": "Unset",
"comment": "Kommentera",
@@ -288,7 +288,7 @@
"filter-on-desc": "Du filtrerar kort på denna anslagstavla. Klicka här för att redigera filter.",
"filter-to-selection": "Filter till val",
"advanced-filter-label": "Avancerat filter",
"advanced-filter-description": "Avancerade Filter låter dig skriva en sträng innehållande följande operatorer: == != <= >= && || ( ). Ett mellanslag används som separator mellan operatorerna. Du kan filtrera alla specialfält genom att skriva dess namn och värde. Till exempel: Fält1 == Vårde1. Notera: om fälten eller värden innehåller mellanrum behöver du innesluta dem med enkla citatstecken. Till exempel: 'Fält 1' == 'Värde 1'. För att skippa enkla kontrolltecken (' \\/) kan du använda \\. Till exempel: Fält1 == I\\'m. Du kan även kombinera fler villkor. TIll exempel: F1 == V1 || F1 == V2. Vanligtvis läses operatorerna från vänster till höger. Du kan ändra ordning genom att använda paranteser. TIll exempel: F1 == V1 && ( F2 == V2 || F2 == V3 ). Du kan även söka efter textfält med hjälp av regex: F1 == /Tes.*/i",
"advanced-filter-description": "Avancerade filter låter dig skriva en sträng innehållande följande operatorer: == != <= >= && || ( ). Ett mellanslag används som separator mellan operatorerna. Du kan filtrera alla specialfält genom att skriva dess namn och värde. Till exempel: Fält1 == Vårde1. Notera: om fälten eller värden innehåller mellanrum behöver du innesluta dem med enkla citatstecken. Till exempel: 'Fält 1' == 'Värde 1'. För att skippa enkla kontrolltecken (' \\/) kan du använda \\. Till exempel: Fält1 == I\\'m. Du kan även kombinera fler villkor. TIll exempel: F1 == V1 || F1 == V2. Vanligtvis läses operatorerna från vänster till höger. Du kan ändra ordning genom att använda paranteser. TIll exempel: F1 == V1 && ( F2 == V2 || F2 == V3 ). Du kan även söka efter textfält med hjälp av regex: F1 == /Tes.*/i",
"fullname": "Namn",
"header-logo-title": "Gå tillbaka till din anslagstavlor-sida.",
"hide-system-messages": "Göm systemmeddelanden",
@@ -303,7 +303,7 @@
"import-sandstorm-backup-warning": "Do not delete data you import from original exported board or Trello before checking does this grain close and open again, or do you get Board not found error, that means data loss.",
"import-sandstorm-warning": "Importerad anslagstavla raderar all befintlig data på anslagstavla och ersätter den med importerat anslagstavla.",
"from-trello": "Från Trello",
"from-wekan": "From previous export",
"from-wekan": "Från tidigare export",
"import-board-instruction-trello": "I din Trello-anslagstavla, gå till 'Meny', sedan 'Mera', 'Skriv ut och exportera', 'Exportera JSON' och kopiera den resulterande text.",
"import-board-instruction-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.",
"import-board-instruction-about-errors": "Om du får fel vid import av anslagstavla, ibland importerar fortfarande fungerar, och styrelsen är på alla sidor för anslagstavlor.",
@@ -312,7 +312,7 @@
"import-members-map": "Your imported board has some members. Please map the members you want to import to your users",
"import-show-user-mapping": "Granska medlemskartläggning",
"import-user-select": "Pick your existing user you want to use as this member",
"importMapMembersAddPopup-title": "Select member",
"importMapMembersAddPopup-title": "Välj medlem",
"info": "Version",
"initials": "Initialer ",
"invalid-date": "Ogiltigt datum",
@@ -331,7 +331,7 @@
"leave-board-pop": "Är du säker på att du vill lämna __boardTitle__? Du kommer att tas bort från alla kort på den här anslagstavlan.",
"leaveBoardPopup-title": "Lämna anslagstavla ?",
"link-card": "Länka till detta kort",
"list-archive-cards": "Move all cards in this list to Archive",
"list-archive-cards": "Flytta alla kort i den här listan till Arkiv",
"list-archive-cards-pop": "This will remove all the cards in this list from the board. To view cards in Archive and bring them back to the board, click “Menu” > “Archive”.",
"list-move-cards": "Flytta alla kort i denna lista",
"list-select-cards": "Välj alla kort i denna lista",
@@ -363,8 +363,8 @@
"muted-info": "Du kommer aldrig att meddelas om eventuella ändringar i denna anslagstavla",
"my-boards": "Mina anslagstavlor",
"name": "Namn",
"no-archived-cards": "No cards in Archive.",
"no-archived-lists": "No lists in Archive.",
"no-archived-cards": "Inga kort i Arkiv.",
"no-archived-lists": "Inga listor i Arkiv.",
"no-archived-swimlanes": "No swimlanes in Archive.",
"no-results": "Inga reslutat",
"normal": "Normal",
@@ -445,7 +445,7 @@
"uploaded-avatar": "Laddade upp en avatar",
"username": "Änvandarnamn",
"view-it": "Visa det",
"warn-list-archived": "warning: this card is in an list at Archive",
"warn-list-archived": "varning: detta kort finns i en lista i Arkiv",
"watch": "Bevaka",
"watching": "Bevakar",
"watching-info": "Du kommer att meddelas om alla ändringar på denna anslagstavla",
@@ -498,7 +498,7 @@
"OS_Totalmem": "OS totalt minne",
"OS_Type": "OS Typ",
"OS_Uptime": "OS drifttid",
"days": "days",
"days": "dagar",
"hours": "timmar",
"minutes": "minuter",
"seconds": "sekunder",
@@ -519,10 +519,10 @@
"card-end-on": "Slutar den",
"editCardReceivedDatePopup-title": "Ändra mottagningsdatum",
"editCardEndDatePopup-title": "Ändra slutdatum",
"setCardColorPopup-title": "Set color",
"setCardActionsColorPopup-title": "Choose a color",
"setSwimlaneColorPopup-title": "Choose a color",
"setListColorPopup-title": "Choose a color",
"setCardColorPopup-title": "Ange färg",
"setCardActionsColorPopup-title": "Välj en färg",
"setSwimlaneColorPopup-title": "Välj en färg",
"setListColorPopup-title": "Välj en färg",
"assigned-by": "Tilldelad av",
"requested-by": "Efterfrågad av",
"board-delete-notice": "Borttagningen är permanent. Du kommer förlora alla listor, kort och händelser kopplade till den här anslagstavlan.",
@@ -559,20 +559,20 @@
"r-add-rule": "Lägg till regel",
"r-view-rule": "Visa regel",
"r-delete-rule": "Ta bort regel",
"r-new-rule-name": "New rule title",
"r-new-rule-name": "Ny titel på regel",
"r-no-rules": "Inga regler",
"r-when-a-card": "When a card",
"r-when-a-card": "När ett kort",
"r-is": "är",
"r-is-moved": "is moved",
"r-added-to": "added to",
"r-is-moved": "är flyttad",
"r-added-to": "tillagd till",
"r-removed-from": "Borttagen från",
"r-the-board": "anslagstavlan",
"r-list": "lista",
"set-filter": "Set Filter",
"r-moved-to": "Flyttad till",
"r-moved-from": "Flyttad från",
"r-archived": "Moved to Archive",
"r-unarchived": "Restored from Archive",
"r-archived": "Flyttad till Arkiv",
"r-unarchived": "Återställd från Arkiv",
"r-a-card": "ett kort",
"r-when-a-label-is": "När en etikett är",
"r-when-the-label-is": "När etiketten är",
@@ -622,8 +622,8 @@
"r-d-send-email-to": "till",
"r-d-send-email-subject": "ämne",
"r-d-send-email-message": "meddelande",
"r-d-archive": "Move card to Archive",
"r-d-unarchive": "Restore card from Archive",
"r-d-archive": "Flytta kortet till Arkiv",
"r-d-unarchive": "Återställ kortet från Arkiv",
"r-d-add-label": "Lägg till etikett",
"r-d-remove-label": "Ta bort etikett",
"r-create-card": "Create new card",
@@ -639,7 +639,7 @@
"r-d-check-of-list": "of checklist",
"r-d-add-checklist": "Lägg till checklista",
"r-d-remove-checklist": "Ta bort checklista",
"r-by": "by",
"r-by": "av",
"r-add-checklist": "Lägg till checklista",
"r-with-items": "with items",
"r-items-list": "item1,item2,item3",
@@ -658,6 +658,6 @@
"hide-logo": "Dölj logotypen",
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
"error-undefined": "Something went wrong",
"error-ldap-login": "An error occurred while trying to login"
"error-undefined": "Något gick fel",
"error-ldap-login": "Ett fel uppstod när du försökte logga in"
}
+30 -30
View File
@@ -147,8 +147,8 @@
"cards-count": "卡片",
"casSignIn": "以 CAS 登入",
"cardType-card": "卡片",
"cardType-linkedCard": "Linked Card",
"cardType-linkedBoard": "Linked Board",
"cardType-linkedCard": "已連結卡片",
"cardType-linkedBoard": "已連結看板",
"change": "變更",
"change-avatar": "更換大頭貼",
"change-password": "變更密碼",
@@ -161,50 +161,50 @@
"changeSettingsPopup-title": "更改設定",
"subtasks": "子任務",
"checklists": "待辦清單",
"click-to-star": "點此來標記該看板",
"click-to-unstar": "點此來去除該看板的標記",
"click-to-star": "點擊以添加標記於此看板。",
"click-to-unstar": "點擊以移除標記於此看板。",
"clipboard": "剪貼簿貼上或者拖曳檔案",
"close": "關閉",
"close-board": "關閉看板",
"close-board-pop": "您可以通過點擊主頁眉中的「封存」按鈕來恢復看板。",
"color-black": "黑色",
"color-blue": "藍色",
"color-crimson": "crimson",
"color-darkgreen": "darkgreen",
"color-gold": "gold",
"color-gray": "gray",
"color-crimson": "艷紅",
"color-darkgreen": "暗綠",
"color-gold": "金色",
"color-gray": "灰色",
"color-green": "綠色",
"color-indigo": "indigo",
"color-indigo": "紫藍",
"color-lime": "綠黃",
"color-magenta": "magenta",
"color-mistyrose": "mistyrose",
"color-navy": "navy",
"color-magenta": "洋紅",
"color-mistyrose": "玫瑰粉",
"color-navy": "藏青",
"color-orange": "橙色",
"color-paleturquoise": "paleturquoise",
"color-peachpuff": "peachpuff",
"color-paleturquoise": "淡藍綠",
"color-peachpuff": "桃色",
"color-pink": "粉紅",
"color-plum": "plum",
"color-plum": "梅色",
"color-purple": "紫色",
"color-red": "紅色",
"color-saddlebrown": "saddlebrown",
"color-silver": "silver",
"color-saddlebrown": "馬鞍棕",
"color-silver": "銀色",
"color-sky": "天藍",
"color-slateblue": "slateblue",
"color-white": "white",
"color-slateblue": "青藍",
"color-white": "白色",
"color-yellow": "黃色",
"unset-color": "Unset",
"unset-color": "未設置",
"comment": "評論",
"comment-placeholder": "撰寫評論",
"comment-only": "只能發表評論",
"comment-only-desc": "只能在卡片上發表評論",
"no-comments": "沒有評論",
"no-comments-desc": "Can not see comments and activities.",
"no-comments-desc": "無法檢視評論和活動。",
"computer": "從本機上傳",
"confirm-subtask-delete-dialog": "你確定要刪除子任務嗎?",
"confirm-checklist-delete-dialog": "你確定要刪除待辦清單嗎?",
"copy-card-link-to-clipboard": "將卡片連結複製到剪貼簿",
"linkCardPopup-title": "Link Card",
"searchCardPopup-title": "Search Card",
"linkCardPopup-title": "連結卡片",
"searchCardPopup-title": "搜尋卡片",
"copyCardPopup-title": "複製卡片",
"copyChecklistToManyCardsPopup-title": "複製待辦清單的樣板到多個卡片",
"copyChecklistToManyCardsPopup-instructions": "使用此 JSON 格式來表示目標卡片的標題和描述",
@@ -216,14 +216,14 @@
"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": "Checkbox",
"custom-field-delete-pop": "此操作將會從所有卡片中移除自訂欄位以及銷毀歷史紀錄,並且無法撤消。",
"custom-field-checkbox": "複選框",
"custom-field-date": "日期",
"custom-field-dropdown": "Dropdown List",
"custom-field-dropdown-none": "(none)",
"custom-field-dropdown-options": "下拉式選單",
"custom-field-dropdown": "下拉式選單",
"custom-field-dropdown-none": "(無)",
"custom-field-dropdown-options": "清單選項",
"custom-field-dropdown-options-placeholder": "按下 Enter 新增更多選項",
"custom-field-dropdown-unknown": "(unknown)",
"custom-field-dropdown-unknown": "(未知)",
"custom-field-number": "數字",
"custom-field-text": "文字",
"custom-fields": "自訂欄位",
@@ -255,7 +255,7 @@
"email-enrollAccount-subject": "您在 __siteName__ 的帳號已經建立",
"email-enrollAccount-text": "親愛的 __user__,\n\n點選下面的連結,即刻開始使用這項服務。\n\n__url__\n\n謝謝。",
"email-fail": "郵件寄送失敗",
"email-fail-text": "Error trying to send email",
"email-fail-text": "嘗試發送郵件時出現錯誤",
"email-invalid": "電子郵件地址錯誤",
"email-invite": "寄送郵件邀請",
"email-invite-subject": "__inviter__ 向您發出邀請",
+1 -1
View File
@@ -31,7 +31,7 @@ if (Meteor.isServer) {
user = Meteor.users.findOne({
'services.resume.loginTokens.hashedToken': hashToken,
});
} else {
} else if (!Meteor.settings.public.sandstorm) {
Authentication.checkUserId(req.userId);
user = Users.findOne({ _id: req.userId, isAdmin: true });
}
+1 -1
View File
@@ -569,7 +569,7 @@ if (Meteor.isServer) {
user.username = user.services.oidc.username;
user.emails = [{ address: email, verified: true }];
const initials = user.services.oidc.fullname.match(/\b[a-zA-Z]/g).join('').toUpperCase();
user.profile = { initials, fullname: user.services.oidc.fullname };
user.profile = { initials, fullname: user.services.oidc.fullname, boardView: 'board-view-lists' };
user.authenticationMethod = 'oauth2';
// see if any existing user has this email address or username, otherwise create new
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "wekan",
"version": "v2.10.0",
"version": "v2.17.0",
"description": "Open-Source kanban",
"private": true,
"scripts": {
+2 -2
View File
@@ -22,10 +22,10 @@ const pkgdef :Spk.PackageDefinition = (
appTitle = (defaultText = "Wekan"),
# The name of the app as it is displayed to the user.
appVersion = 212,
appVersion = 219,
# Increment this for every release.
appMarketingVersion = (defaultText = "2.10.0~2019-01-30"),
appMarketingVersion = (defaultText = "2.17.0~2019-02-04"),
# Human-readable presentation of the app version.
minUpgradableAppVersion = 0,