mirror of
https://github.com/wekan/wekan.git
synced 2025-04-23 13:37:09 -04:00
Merge branch 'master' into devel
This commit is contained in:
commit
0f014c954c
11 changed files with 100 additions and 61 deletions
10
History.md
10
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.
|
||||
|
||||
|
|
39
README.md
39
README.md
|
@ -1,27 +1,38 @@
|
|||
# Wekan
|
||||
|
||||
[](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
|
||||
|
|
19
app.json
Normal file
19
app.json
Normal 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"
|
||||
]
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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'),
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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' });
|
||||
},
|
||||
});
|
||||
|
|
|
@ -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 ?"
|
||||
}
|
|
@ -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
BIN
meta/icons/wekan-150.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.2 KiB |
|
@ -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,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue