Merge branch 'master' into devel

This commit is contained in:
Maxime Quandalle 2015-09-10 19:25:15 +02:00
commit 0f014c954c
11 changed files with 100 additions and 61 deletions

View file

@ -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.

View file

@ -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 youre 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 dont 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

19
app.json Normal file
View file

@ -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"
]
}

View file

@ -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;
}

View file

@ -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'),
};
}

View file

@ -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

View file

@ -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' });
},
});

View file

@ -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": "Lavatar est trop gros (70Kb max)",
"avatar-too-big": "La taille du fichier de lavatar 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 ?"
}

View file

@ -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",

BIN
meta/icons/wekan-150.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

View file

@ -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,