summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--History.md10
-rw-r--r--README.md39
-rw-r--r--app.json19
-rw-r--r--client/components/boards/boardBody.js8
-rw-r--r--client/components/cards/cardDetails.js3
-rw-r--r--client/components/sidebar/sidebar.jade2
-rw-r--r--client/config/router.js4
-rw-r--r--i18n/fr.i18n.json6
-rw-r--r--i18n/pt-BR.i18n.json68
-rw-r--r--meta/icons/wekan-150.pngbin0 -> 4323 bytes
-rw-r--r--sandstorm-pkgdef.capnp2
11 files changed, 100 insertions, 61 deletions
diff --git a/History.md b/History.md
index b4126425..ddf7032f 100644
--- a/History.md
+++ b/History.md
@@ -13,15 +13,15 @@ security. It also features the following improvements:
by Sandstorm);
* Cards multi-selection to facilitate batch actions such as moving all the cards
of selection, or attaching a label or a member to them;
+* Automatic drafts saving synced with the server;
* Keyboard navigation, press `?` to read the list of available shortcuts;
* The possibility to restore archived boards, lists, and cards.
Starting from this release we will also distribute official docker images on
-both the
-[GitHub release page](https://github.com/wekan/wekan/releases)
-and on the
-[DockerHub](https://hub.docker.com/r/mquandalle/wekan). We also improved
-Sandstorm integration with the support of its build-in sharing model.
+both the [GitHub release page](https://github.com/wekan/wekan/releases) and on
+the [DockerHub](https://hub.docker.com/r/mquandalle/wekan). We also configured
+Heroku one-click install and improved Sandstorm integration with the integration
+of its build-in sharing model.
New languages supported: Chinese, Finnish, Spanish, Korean, and Russian.
diff --git a/README.md b/README.md
index de2846f9..a4dda6df 100644
--- a/README.md
+++ b/README.md
@@ -1,27 +1,38 @@
# Wekan
-[![Join the chat at https://gitter.im/wekan/wekan](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/wekan/wekan?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
+[![Join the chat][gitter_badge]][gitter_chat]
-<!-- XXX Need to improve this introduction -->
+Wekan is an open-source and collaborative kanban board application.
-Wekan is an open-source *kanban* board that let you organize things in cards,
-and cards in lists. You can use it alone, or with your team and family thanks to
-our real-time synchronisation feature. Wekan is a land of liberty and you can
-implement all sort of workflows on it using tags, comments, member assignation,
-and many more.
+Whether you’re maintaining a personal todo list, planning your holidays with
+some friends, or working in a team on your next revolutionary idea, Kanban
+boards are an unbeatable tool to keep your things organized. They give you a
+visual overview of the current state of your project, and make you productive by
+allowing you to focus on the few items that matter the most.
-[![Our roadmap is self-hosted on LibreBoard][thumbnail]][roadmap]
+[![Our roadmap is self-hosted on Wekan][screenshot]][roadmap]
+
+Wekan supports most features you would expect of it including a real-time user
+interface, cards comments, member assignations, customizable labels, filtered
+views, and more.
Since it is a free software, you don’t have to trust us with your data and can
install Wekan on your own computer or server. In fact we encourage you to do
-that by providing one-click installation for the
-[Sandstorm](https://sandstorm.io) platform and verified
-[Docker](https://www.docker.com) images.
+that by providing one-click installation on Heroku or [Sandstorm]
+[sandstorm_market] platforms and verified [Docker][docker_image] images.
+
+[![Deploy][heroku_button]][heroku_deploy]
Wekan is released under the very permissive [MIT license](LICENSE), and made
with [Meteor](https://www.meteor.com).
-[Our roadmap is self-hosted on LibreBoard][roadmap]
+[Our roadmap is self-hosted on Wekan][roadmap]
-[thumbnail]: http://i.imgur.com/IIdHUmW.png
-[roadmap]: http://libreboard.com/boards/MeSsFJaSqeuo9M6bs/libreboard-roadmap
+[screenshot]: http://i.imgur.com/cI4jW2h.png
+[gitter_badge]: https://badges.gitter.im/Join%20Chat.svg
+[gitter_chat]: https://gitter.im/wekan/wekan
+[roadmap]: http://try.wekan.io/b/MeSsFJaSqeuo9M6bs/wekan-roadmap
+[sandstorm_market]: https://oasis.sandstorm.io/appdemo/m86q05rdvj14yvn78ghaxynqz7u2svw6rnttptxx49g1785cdv1h
+[docker_image]: https://hub.docker.com/r/mquandalle/wekan/
+[heroku_button]: https://www.herokucdn.com/deploy/button.png
+[heroku_deploy]: https://heroku.com/deploy?template=https://github.com/wekan/wekan/tree/master
diff --git a/app.json b/app.json
new file mode 100644
index 00000000..2bf5cf37
--- /dev/null
+++ b/app.json
@@ -0,0 +1,19 @@
+{
+ "name": "Wekan",
+ "description": "The open-source Trello-like kanban",
+ "repository": "https://github.com/wekan/wekan",
+ "logo": "https://raw.githubusercontent.com/wekan/wekan/master/meta/icons/wekan-150.png",
+ "keywords": ["productivity", "tool", "team", "kanban"],
+ "website": "http://wekan.io",
+ "env": {
+ "BUILDPACK_URL": "https://github.com/AdmitHub/meteor-buildpack-horse.git",
+ "ROOT_URL": {
+ "description": "IMPORTANT! Please replace <App Name> with the value provided on the top. This will be the full URL of your Wekan app.",
+ "value": "https://<App Name>.herokuapp.com"
+ }
+ },
+ "addons": [
+ "mongolab",
+ "logentries"
+ ]
+}
diff --git a/client/components/boards/boardBody.js b/client/components/boards/boardBody.js
index 980a9015..95590beb 100644
--- a/client/components/boards/boardBody.js
+++ b/client/components/boards/boardBody.js
@@ -68,7 +68,13 @@ BlazeComponent.extendComponent({
// Click-and-drag action
'mousedown .board-canvas'(evt) {
- if ($(evt.target).closest('a,.js-list-header').length === 0) {
+ // Translating the board canvas using the click-and-drag action can
+ // conflict with the build-in browser mechanism to select text. We
+ // define a list of elements in which we disable the dragging because
+ // the user will legitimately expect to be able to select some text with
+ // his mouse.
+ const noDragInside = ['a', 'input', 'textarea', 'p', '.js-list-header'];
+ if ($(evt.target).closest(noDragInside.join(',')).length === 0) {
this._isDragging = true;
this._lastDragPositionX = evt.clientX;
}
diff --git a/client/components/cards/cardDetails.js b/client/components/cards/cardDetails.js
index a493d938..6ea6e777 100644
--- a/client/components/cards/cardDetails.js
+++ b/client/components/cards/cardDetails.js
@@ -96,6 +96,9 @@ BlazeComponent.extendComponent({
_getUnsavedEditKey() {
return {
fieldName: 'cardDescription',
+ // XXX Recovering the currentCard identifier form a session variable is
+ // fragile because this variable may change for instance if the route
+ // change. We should use some component props instead.
docId: Session.get('currentCard'),
};
}
diff --git a/client/components/sidebar/sidebar.jade b/client/components/sidebar/sidebar.jade
index e7cd1159..7f7519c6 100644
--- a/client/components/sidebar/sidebar.jade
+++ b/client/components/sidebar/sidebar.jade
@@ -42,7 +42,7 @@ template(name="labelsWidget")
.board-widget-content
each currentBoard.labels
a.card-label(class="card-label-{{color}}"
- class="{{#if currentUser.isBoardMember}}js-add-labels{{/if}}")
+ class="{{#if currentUser.isBoardMember}}js-label{{/if}}")
span.card-label-name= name
if currentUser.isBoardAdmin
a.card-label.add-label.js-add-label
diff --git a/client/config/router.js b/client/config/router.js
index 76d7b3ad..1cac43a0 100644
--- a/client/config/router.js
+++ b/client/config/router.js
@@ -40,11 +40,11 @@ FlowRouter.route('/b/:id/:slug', {
FlowRouter.route('/b/:boardId/:slug/:cardId', {
name: 'card',
action(params) {
+ EscapeActions.executeUpTo('inlinedForm');
+
Session.set('currentBoard', params.boardId);
Session.set('currentCard', params.cardId);
- EscapeActions.executeUpTo('inlinedForm');
-
BlazeLayout.render('defaultLayout', { content: 'board' });
},
});
diff --git a/i18n/fr.i18n.json b/i18n/fr.i18n.json
index b57905d4..a63fb0ce 100644
--- a/i18n/fr.i18n.json
+++ b/i18n/fr.i18n.json
@@ -24,7 +24,7 @@
"added": "Ajouté",
"addMemberPopup-title": "Membres",
"admin": "Admin",
- "admin-desc": "Peut voir et éditer les cartes, supprimer des membres, et changer les paramètres du tableau.",
+ "admin-desc": "Peut voir et éditer les cartes, supprimer des membres et changer les paramètres du tableau.",
"all-boards": "Tous les tableaux",
"and-n-other-card": "Et __count__ autre carte",
"and-n-other-card_plural": "Et __count__ autres cartes",
@@ -43,7 +43,7 @@
"attachment-delete-pop": "La suppression d'une pièce jointe est définitive. Elle ne peut être annulée.",
"attachmentDeletePopup-title": "Supprimer la pièce jointe ?",
"attachments": "Pièces jointes",
- "avatar-too-big": "L’avatar est trop gros (70Kb max)",
+ "avatar-too-big": "La taille du fichier de l’avatar est trop importante (70 Ko au maximum)",
"back": "Retour",
"board-change-color": "Changer la couleur",
"board-nb-stars": "%s étoiles",
@@ -195,6 +195,6 @@
"uploaded-avatar": "Avatar téléchargé",
"username": "Nom d'utilisateur",
"view-it": "Le voir",
- "warn-list-archived": "attention: cette carte est dans une liste archivée",
+ "warn-list-archived": "Attention : cette carte est dans une liste archivée",
"what-to-do": "Que voulez-vous faire ?"
} \ No newline at end of file
diff --git a/i18n/pt-BR.i18n.json b/i18n/pt-BR.i18n.json
index 106728e9..381dc9b5 100644
--- a/i18n/pt-BR.i18n.json
+++ b/i18n/pt-BR.i18n.json
@@ -1,6 +1,6 @@
{
"actions": "Ações",
- "activities": "Activities",
+ "activities": "Atividades",
"activity": "Atividade",
"activity-added": "adicionou %s a %s",
"activity-archived": "arquivou %s",
@@ -14,30 +14,30 @@
"activity-sent": "enviou %s de %s",
"activity-unjoined": "deixou %s",
"add": "Novo",
- "add-attachment": "Add an attachment",
+ "add-attachment": "Adicionar um anexo",
"add-board": "Criar um quadro novo",
- "add-card": "Add a card",
+ "add-card": "Adicionar um cartão",
"add-cover": "Adicionar Capa",
- "add-label": "Add the label",
- "add-list": "Add a list",
- "add-members": "Add Members",
+ "add-label": "Adicionar a Etiqueta",
+ "add-list": "Adicionar uma lista",
+ "add-members": "Adicionar Membros",
"added": "Criado",
"addMemberPopup-title": "Membros",
"admin": "Administrador",
"admin-desc": "Pode ver e editar cartões, remover membros e alterar configurações do quadro.",
- "all-boards": "All boards",
+ "all-boards": "Todos os quadros",
"and-n-other-card": "And __count__ other card",
"and-n-other-card_plural": "And __count__ other cards",
"archive": "Arquivar",
"archive-all": "Arquivar Tudo",
- "archive-board": "Archive Board",
- "archive-card": "Archive Card",
+ "archive-board": "Arquivar Quadro",
+ "archive-card": "Arquivar Cartão",
"archive-list": "Arquivar esta lista",
- "archive-selection": "Archive selection",
+ "archive-selection": "Arquivar seleção",
"archiveBoardPopup-title": "Fechar Quadro?",
"archived-items": "Itens Arquivados",
- "archives": "Archives",
- "assign-member": "Assign member",
+ "archives": "Arquivos",
+ "assign-member": "Atribuir Membro",
"attached": "anexado",
"attachment": "Anexo",
"attachment-delete-pop": "Excluir um anexo é permanente. Não será possível recuperá-lo.",
@@ -45,15 +45,15 @@
"attachments": "Anexos",
"avatar-too-big": "The avatar is too large (70Kb max)",
"back": "Voltar",
- "board-change-color": "Change color",
+ "board-change-color": "Alterar cor",
"board-nb-stars": "%s stars",
"board-not-found": "Quadro não encontrado",
- "board-private-info": "This board will be <strong>private</strong>.",
+ "board-private-info": "Este quadro será <strong>privado</strong>.",
"board-public-info": "Este quadro será <strong>público</strong>.",
- "boardChangeColorPopup-title": "Change Board Background",
+ "boardChangeColorPopup-title": "Alterar Tela de Fundo",
"boardChangeTitlePopup-title": "Renomear Quadro",
"boardChangeVisibilityPopup-title": "Alterar Visibilidade",
- "boardMenuPopup-title": "Board Menu",
+ "boardMenuPopup-title": "Menu do Quadro",
"boards": "Quadros",
"bucket-example": "Like “Bucket List” for example",
"cancel": "Cancelar",
@@ -62,21 +62,21 @@
"card-delete-notice": "A exclusão será permanente. Você perderá todas as ações associadas a este cartão.",
"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": "You can archive a card to remove it from the board and preserve the activity.",
- "card-edit-attachments": "Edit attachments",
- "card-edit-labels": "Edit labels",
- "card-edit-members": "Edit members",
+ "card-edit-attachments": "Editar anexos",
+ "card-edit-labels": "Editar etiquetas",
+ "card-edit-members": "Editar membros",
"card-labels-title": "Alterar etiquetas do cartão.",
"card-members-title": "Acrescentar ou remover membros do quadro deste cartão.",
- "cardAttachmentsPopup-title": "Attach From",
+ "cardAttachmentsPopup-title": "Anexar a partir de",
"cardDeletePopup-title": "Excluir Cartão?",
"cardDetailsActionsPopup-title": "Card Actions",
"cardLabelsPopup-title": "Etiquetas",
"cardMembersPopup-title": "Membros",
"cardMorePopup-title": "Mais",
- "cards": "Cards",
+ "cards": "Cartões",
"change-avatar": "Alterar Avatar",
"change-password": "Alterar Senha",
- "change-permissions": "Change permissions",
+ "change-permissions": "Alterar permissões",
"changeAvatarPopup-title": "Alterar Avatar",
"changeLanguagePopup-title": "Alterar Idioma",
"changePasswordPopup-title": "Alterar Senha",
@@ -84,10 +84,10 @@
"click-to-star": "Marcar quadro como favorito.",
"click-to-unstar": "Remover quadro dos favoritos.",
"close": "Fechar",
- "close-board": "Close Board",
+ "close-board": "Fechar Quadro",
"close-board-pop": "Você pode reabrir um quadro clicando em “Quadros” no menu no cabeçalho, selecionando “Exibir Quadros Fechados”, encontrando-o e clicando em “Reabrir”.",
"comment": "Comentário",
- "comment-placeholder": "Write a comment",
+ "comment-placeholder": "Escrever um comentário",
"computer": "Computador",
"create": "Criar",
"createBoardPopup-title": "Criar Quadro",
@@ -103,21 +103,21 @@
"download": "Baixar",
"edit": "Editar",
"edit-avatar": "Alterar Avatar",
- "edit-profile": "Edit Profile",
+ "edit-profile": "Editar Perfil",
"editLabelPopup-title": "Alterar Etiqueta",
- "editProfilePopup-title": "Edit Profile",
+ "editProfilePopup-title": "Editar Perfil",
"email": "E-mail",
- "filter": "Filter",
+ "filter": "Filtrar",
"filter-cards": "Filtrar Cartões",
- "filter-clear": "Clear filter",
- "filter-on": "Filter is on",
+ "filter-clear": "Limpar filtro",
+ "filter-on": "Filtro está ativo",
"filter-on-desc": "Você está filtrando cartões neste quadro. Clique aqui para editar o filtro.",
"filter-to-selection": "Filter to selection",
"fullname": "Nome Completo",
"header-logo-title": "Voltar para a lista de quadros.",
"home": "Início",
"info": "Informações",
- "initials": "Initials",
+ "initials": "Iniciais",
"joined": "juntou-se",
"keyboard-shortcuts": "Keyboard shortcuts",
"label-create": "Criar uma nova etiqueta",
@@ -126,7 +126,7 @@
"labels": "Etiquetas",
"language": "Idioma",
"last-admin-desc": "Você não pode alterar funções porque deve existir pelo menos um administrador.",
- "leave-board": "Leave Board",
+ "leave-board": "Sair do Quadro",
"link-card": "Vincular a este cartão",
"list-archive-cards": "Archive all cards in this list",
"list-archive-cards-pop": "Isto removerá todos os cartões desta lista do quadro. Para visualizar os cartões arquivados e trazê-los de volta para o quadro, clique em “Menu” > “Itens Arquivados”.",
@@ -135,13 +135,13 @@
"listActionPopup-title": "Listar Ações",
"listArchiveCardsPopup-title": "Arquivar Todos Os Cartões Nesta Lista?",
"listMoveCardsPopup-title": "Mover Todos Os Cartões Nesta Lista",
- "lists": "Lists",
+ "lists": "Listas",
"log-out": "Sair",
"loginPopup-title": "Entrar",
"memberMenuPopup-title": "Member Settings",
"members": "Membros",
"menu": "Menu",
- "moveCardPopup-title": "Move Card",
+ "moveCardPopup-title": "Mover Cartão",
"multi-selection": "Multi-Selection",
"my-boards": "Meus Quadros",
"name": "Nome",
@@ -169,7 +169,7 @@
"removeMemberPopup-title": "Remover Membro?",
"rename": "Renomear",
"rename-board": "Renomear Quadro",
- "restore": "Restore",
+ "restore": "Restaurar",
"save": "Salvar",
"search": "Buscar",
"select-color": "Selecione uma cor",
diff --git a/meta/icons/wekan-150.png b/meta/icons/wekan-150.png
new file mode 100644
index 00000000..baca8d9d
--- /dev/null
+++ b/meta/icons/wekan-150.png
Binary files differ
diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp
index b3ce6a85..0e41b5a1 100644
--- a/sandstorm-pkgdef.capnp
+++ b/sandstorm-pkgdef.capnp
@@ -25,7 +25,7 @@ const pkgdef :Spk.PackageDefinition = (
appVersion = 5,
# Increment this for every release.
- appMarketingVersion = (defaultText = "0.9.0-rc2"),
+ appMarketingVersion = (defaultText = "0.9.0"),
# Human-readable presentation of the app version.
minUpgradableAppVersion = 0,