mirror of
https://github.com/wekan/wekan.git
synced 2025-04-22 04:57:07 -04:00
Merge branch 'devel'
This commit is contained in:
commit
676140f5c8
12 changed files with 95 additions and 46 deletions
12
CHANGELOG.md
12
CHANGELOG.md
|
@ -1,3 +1,15 @@
|
|||
# v1.34 2018-08-22 Wekan release
|
||||
|
||||
This release fixes the following bugs:
|
||||
|
||||
- [Restored SMTP settings at Admin Panel, and disabled showing password](https://github.com/wekan/wekan/issues/1790);
|
||||
- [Move color labels on minicard to bottom of minicard](https://github.com/wekan/wekan/issues/1842);
|
||||
- [Fix and improve linked cards](https://github.com/wekan/wekan/pull/1849);
|
||||
- [Allow Sandstorm to serve Wekan HTTP API](https://github.com/wekan/wekan/pull/1851);
|
||||
- [Add Favicon for pinned tab on Safari browser](https://github.com/wekan/wekan/issues/1795).
|
||||
|
||||
Thanks to GitHub users andresmanelli, ocdtrekkie, therampagerado, woodyart and xet7 for their contributions.
|
||||
|
||||
# v1.33 2018-08-16 Wekan release
|
||||
|
||||
This release fixes the following bugs:
|
||||
|
|
|
@ -4,10 +4,6 @@ template(name="minicard")
|
|||
class="{{#if isLinkedBoard}}linked-board{{/if}}")
|
||||
if cover
|
||||
.minicard-cover(style="background-image: url('{{cover.url}}');")
|
||||
if labels
|
||||
.minicard-labels
|
||||
each labels
|
||||
.minicard-label(class="card-label-{{color}}" title="{{name}}")
|
||||
.minicard-title
|
||||
if $eq 'prefix-with-full-path' currentBoard.presentParentTask
|
||||
.parent-prefix
|
||||
|
@ -80,3 +76,8 @@ template(name="minicard")
|
|||
.badge(class="{{#if checklistFinished}}is-finished{{/if}}")
|
||||
span.badge-icon.fa.fa-check-square-o
|
||||
span.badge-text.check-list-text {{checklistFinishedCount}}/{{checklistItemCount}}
|
||||
|
||||
if labels
|
||||
.minicard-labels
|
||||
each labels
|
||||
.minicard-label(class="card-label-{{color}}" title="{{name}}")
|
||||
|
|
|
@ -70,7 +70,7 @@ template(name="linkCardPopup")
|
|||
label {{_ 'cards'}}:
|
||||
select.js-select-cards
|
||||
each cards
|
||||
option(value="{{_id}}") {{title}}
|
||||
option(value="{{getId}}") {{getTitle}}
|
||||
|
||||
.edit-controls.clearfix
|
||||
input.primary.confirm.js-done(type="button" value="{{_ 'link'}}")
|
||||
|
|
|
@ -333,21 +333,22 @@ BlazeComponent.extendComponent({
|
|||
},
|
||||
|
||||
cards() {
|
||||
const ownCardsIds = this.board.cards().map((card) => { return card.linkedId || card._id; });
|
||||
return Cards.find({
|
||||
boardId: this.selectedBoardId.get(),
|
||||
swimlaneId: this.selectedSwimlaneId.get(),
|
||||
listId: this.selectedListId.get(),
|
||||
archived: false,
|
||||
linkedId: null,
|
||||
_id: {$nin: this.board.cards().map((card) => { return card.linkedId || card._id; })},
|
||||
linkedId: {$nin: ownCardsIds},
|
||||
_id: {$nin: ownCardsIds},
|
||||
});
|
||||
},
|
||||
|
||||
events() {
|
||||
return [{
|
||||
'change .js-select-boards'(evt) {
|
||||
subManager.subscribe('board', $(evt.currentTarget).val());
|
||||
this.selectedBoardId.set($(evt.currentTarget).val());
|
||||
subManager.subscribe('board', this.selectedBoardId.get());
|
||||
},
|
||||
'change .js-select-swimlanes'(evt) {
|
||||
this.selectedSwimlaneId.set($(evt.currentTarget).val());
|
||||
|
@ -438,14 +439,14 @@ BlazeComponent.extendComponent({
|
|||
|
||||
results() {
|
||||
const board = Boards.findOne(this.selectedBoardId.get());
|
||||
return board.searchCards(this.term.get(), true);
|
||||
return board.searchCards(this.term.get(), false);
|
||||
},
|
||||
|
||||
events() {
|
||||
return [{
|
||||
'change .js-select-boards'(evt) {
|
||||
subManager.subscribe('board', $(evt.currentTarget).val());
|
||||
this.selectedBoardId.set($(evt.currentTarget).val());
|
||||
subManager.subscribe('board', this.selectedBoardId.get());
|
||||
},
|
||||
'submit .js-search-term-form'(evt) {
|
||||
evt.preventDefault();
|
||||
|
@ -461,7 +462,7 @@ BlazeComponent.extendComponent({
|
|||
boardId: this.boardId,
|
||||
sort: Lists.findOne(this.listId).cards().count(),
|
||||
type: 'cardType-linkedCard',
|
||||
linkedId: card._id,
|
||||
linkedId: card.linkedId || card._id,
|
||||
});
|
||||
Filter.addException(_id);
|
||||
Popup.close();
|
||||
|
|
|
@ -9,6 +9,7 @@ head
|
|||
packages.
|
||||
link(rel="shortcut icon" href="/wekan-favicon.png")
|
||||
link(rel="apple-touch-icon" href="/wekan-favicon.png")
|
||||
link(rel="mask-icon" href="/wekan-150.svg")
|
||||
link(rel="manifest" href="/wekan-manifest.json")
|
||||
|
||||
template(name="userFormsLayout")
|
||||
|
|
|
@ -55,6 +55,40 @@ template(name="general")
|
|||
|
||||
template(name='email')
|
||||
ul#email-setting.setting-detail
|
||||
li.smtp-form
|
||||
.title {{_ 'smtp-host'}}
|
||||
.description {{_ 'smtp-host-description'}}
|
||||
.form-group
|
||||
input.form-control#mail-server-host(type="text", placeholder="smtp.domain.com" value="{{currentSetting.mailServer.host}}")
|
||||
li.smtp-form
|
||||
.title {{_ 'smtp-port'}}
|
||||
.description {{_ 'smtp-port-description'}}
|
||||
.form-group
|
||||
input.form-control#mail-server-port(type="text", placeholder="25" value="{{currentSetting.mailServer.port}}")
|
||||
li.smtp-form
|
||||
.title {{_ 'smtp-username'}}
|
||||
.form-group
|
||||
input.form-control#mail-server-username(type="text", placeholder="{{_ 'username'}}" value="{{currentSetting.mailServer.username}}")
|
||||
li.smtp-form
|
||||
.title {{_ 'smtp-password'}}
|
||||
.form-group
|
||||
input.form-control#mail-server-password(type="text", placeholder="{{_ 'password'}}" value="")
|
||||
li.smtp-form
|
||||
.title {{_ 'smtp-tls'}}
|
||||
.form-group
|
||||
a.flex.js-toggle-tls
|
||||
.materialCheckBox#mail-server-tls(class="{{#if currentSetting.mailServer.enableTLS}}is-checked{{/if}}")
|
||||
|
||||
span {{_ 'smtp-tls-description'}}
|
||||
|
||||
li.smtp-form
|
||||
.title {{_ 'send-from'}}
|
||||
.form-group
|
||||
input.form-control#mail-server-from(type="email", placeholder="no-reply@domain.com" value="{{currentSetting.mailServer.from}}")
|
||||
|
||||
li
|
||||
button.js-save.primary {{_ 'save'}}
|
||||
|
||||
li
|
||||
button.js-send-smtp-test-email.primary {{_ 'send-smtp-test'}}
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@ BlazeComponent.extendComponent({
|
|||
setLoading(w) {
|
||||
this.loading.set(w);
|
||||
},
|
||||
/*
|
||||
|
||||
checkField(selector) {
|
||||
const value = $(selector).val();
|
||||
if (!value || value.trim() === '') {
|
||||
|
@ -30,7 +30,7 @@ BlazeComponent.extendComponent({
|
|||
return value;
|
||||
}
|
||||
},
|
||||
*/
|
||||
|
||||
currentSetting() {
|
||||
return Settings.findOne();
|
||||
},
|
||||
|
@ -55,11 +55,9 @@ BlazeComponent.extendComponent({
|
|||
$('.invite-people').slideDown();
|
||||
}
|
||||
},
|
||||
/*
|
||||
toggleTLS() {
|
||||
$('#mail-server-tls').toggleClass('is-checked');
|
||||
},
|
||||
*/
|
||||
switchMenu(event) {
|
||||
const target = $(event.target);
|
||||
if (!target.hasClass('active')) {
|
||||
|
@ -101,13 +99,11 @@ BlazeComponent.extendComponent({
|
|||
// if (!err) {
|
||||
// TODO - show more info to user
|
||||
// }
|
||||
|
||||
this.setLoading(false);
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
/*
|
||||
saveMailServerInfo() {
|
||||
this.setLoading(true);
|
||||
$('li').removeClass('has-error');
|
||||
|
@ -132,7 +128,7 @@ BlazeComponent.extendComponent({
|
|||
}
|
||||
|
||||
},
|
||||
*/
|
||||
|
||||
sendSMTPTestEmail() {
|
||||
Meteor.call('sendSMTPTestEmail', (err, ret) => {
|
||||
if (!err && ret) { /* eslint-disable no-console */
|
||||
|
@ -152,15 +148,11 @@ BlazeComponent.extendComponent({
|
|||
events() {
|
||||
return [{
|
||||
'click a.js-toggle-registration': this.toggleRegistration,
|
||||
/*
|
||||
'click a.js-toggle-tls': this.toggleTLS,
|
||||
*/
|
||||
'click a.js-setting-menu': this.switchMenu,
|
||||
'click a.js-toggle-board-choose': this.checkBoard,
|
||||
'click button.js-email-invite': this.inviteThroughEmail,
|
||||
/*
|
||||
'click button.js-save': this.saveMailServerInfo,
|
||||
*/
|
||||
'click button.js-send-smtp-test-email': this.sendSMTPTestEmail,
|
||||
}];
|
||||
},
|
||||
|
|
|
@ -109,7 +109,7 @@
|
|||
"bucket-example": "Como “Cosas por hacer” por ejemplo",
|
||||
"cancel": "Cancelar",
|
||||
"card-archived": "Esta tarjeta se ha enviado a la papelera de reciclaje.",
|
||||
"board-archived": "This board is moved to Recycle Bin.",
|
||||
"board-archived": "Este tablero se ha enviado a la papelera de reciclaje.",
|
||||
"card-comments-title": "Esta tarjeta tiene %s comentarios.",
|
||||
"card-delete-notice": "la eliminación es permanente. Perderás todas las acciones asociadas a esta tarjeta.",
|
||||
"card-delete-pop": "Se eliminarán todas las acciones del historial de actividades y no se podrá volver a abrir la tarjeta. Esta acción no puede deshacerse.",
|
||||
|
@ -136,9 +136,9 @@
|
|||
"cards": "Tarjetas",
|
||||
"cards-count": "Tarjetas",
|
||||
"casSignIn": "Iniciar sesión con CAS",
|
||||
"cardType-card": "Card",
|
||||
"cardType-linkedCard": "Linked Card",
|
||||
"cardType-linkedBoard": "Linked Board",
|
||||
"cardType-card": "Tarjeta",
|
||||
"cardType-linkedCard": "Tarjeta enlazada",
|
||||
"cardType-linkedBoard": "Tablero enlazado",
|
||||
"change": "Cambiar",
|
||||
"change-avatar": "Cambiar el avatar",
|
||||
"change-password": "Cambiar la contraseña",
|
||||
|
@ -175,8 +175,8 @@
|
|||
"confirm-subtask-delete-dialog": "¿Seguro que quieres eliminar la subtarea?",
|
||||
"confirm-checklist-delete-dialog": "¿Seguro que quieres eliminar la lista de verificación?",
|
||||
"copy-card-link-to-clipboard": "Copiar el enlace de la tarjeta al portapapeles",
|
||||
"linkCardPopup-title": "Link Card",
|
||||
"searchCardPopup-title": "Search Card",
|
||||
"linkCardPopup-title": "Enlazar tarjeta",
|
||||
"searchCardPopup-title": "Buscar tarjeta",
|
||||
"copyCardPopup-title": "Copiar la tarjeta",
|
||||
"copyChecklistToManyCardsPopup-title": "Copiar la plantilla de la lista de verificación en varias tarjetas",
|
||||
"copyChecklistToManyCardsPopup-instructions": "Títulos y descripciones de las tarjetas de destino en formato JSON",
|
||||
|
@ -267,7 +267,7 @@
|
|||
"headerBarCreateBoardPopup-title": "Crear tablero",
|
||||
"home": "Inicio",
|
||||
"import": "Importar",
|
||||
"link": "Link",
|
||||
"link": "Enlace",
|
||||
"import-board": "importar un tablero",
|
||||
"import-board-c": "Importar un tablero",
|
||||
"import-board-title-trello": "Importar un tablero desde Trello",
|
||||
|
|
|
@ -109,7 +109,7 @@
|
|||
"bucket-example": "Comme « todo list » par exemple",
|
||||
"cancel": "Annuler",
|
||||
"card-archived": "Cette carte est déplacée vers la corbeille.",
|
||||
"board-archived": "This board is moved to Recycle Bin.",
|
||||
"board-archived": "Ce tableau a été déplacé dans la Corbeille.",
|
||||
"card-comments-title": "Cette carte a %s commentaires.",
|
||||
"card-delete-notice": "La suppression est permanente. Vous perdrez toutes les actions associées à cette carte.",
|
||||
"card-delete-pop": "Toutes les actions vont être supprimées du suivi d'activités et vous ne pourrez plus utiliser cette carte. Cette action est irréversible.",
|
||||
|
@ -136,9 +136,9 @@
|
|||
"cards": "Cartes",
|
||||
"cards-count": "Cartes",
|
||||
"casSignIn": "Se connecter avec CAS",
|
||||
"cardType-card": "Card",
|
||||
"cardType-linkedCard": "Linked Card",
|
||||
"cardType-linkedBoard": "Linked Board",
|
||||
"cardType-card": "Carte",
|
||||
"cardType-linkedCard": "Carte liée",
|
||||
"cardType-linkedBoard": "Tableau lié",
|
||||
"change": "Modifier",
|
||||
"change-avatar": "Modifier l'avatar",
|
||||
"change-password": "Modifier le mot de passe",
|
||||
|
@ -175,8 +175,8 @@
|
|||
"confirm-subtask-delete-dialog": "Êtes-vous sûr de vouloir supprimer la sous-tâche ?",
|
||||
"confirm-checklist-delete-dialog": "Êtes-vous sûr de vouloir supprimer la checklist ?",
|
||||
"copy-card-link-to-clipboard": "Copier le lien vers la carte dans le presse-papier",
|
||||
"linkCardPopup-title": "Link Card",
|
||||
"searchCardPopup-title": "Search Card",
|
||||
"linkCardPopup-title": "Lier une Carte",
|
||||
"searchCardPopup-title": "Chercher une Carte",
|
||||
"copyCardPopup-title": "Copier la carte",
|
||||
"copyChecklistToManyCardsPopup-title": "Copier le modèle de checklist vers plusieurs cartes",
|
||||
"copyChecklistToManyCardsPopup-instructions": "Titres et descriptions des cartes de destination dans ce format JSON",
|
||||
|
@ -267,7 +267,7 @@
|
|||
"headerBarCreateBoardPopup-title": "Créer un tableau",
|
||||
"home": "Accueil",
|
||||
"import": "Importer",
|
||||
"link": "Link",
|
||||
"link": "Lien",
|
||||
"import-board": "importer un tableau",
|
||||
"import-board-c": "Importer un tableau",
|
||||
"import-board-title-trello": "Importer le tableau depuis Trello",
|
||||
|
@ -463,7 +463,7 @@
|
|||
"OS_Platform": "OS Plate-forme",
|
||||
"OS_Release": "OS Version",
|
||||
"OS_Totalmem": "OS Mémoire totale",
|
||||
"OS_Type": "OS Type",
|
||||
"OS_Type": "Type d'OS",
|
||||
"OS_Uptime": "OS Durée de fonctionnement",
|
||||
"hours": "heures",
|
||||
"minutes": "minutes",
|
||||
|
@ -473,7 +473,7 @@
|
|||
"no": "Non",
|
||||
"accounts": "Comptes",
|
||||
"accounts-allowEmailChange": "Autoriser le changement d'adresse mail",
|
||||
"accounts-allowUserNameChange": "Permettre la modification de l'identifiant",
|
||||
"accounts-allowUserNameChange": "Autoriser le changement d'identifiant",
|
||||
"createdAt": "Créé le",
|
||||
"verified": "Vérifié",
|
||||
"active": "Actif",
|
||||
|
@ -485,7 +485,7 @@
|
|||
"editCardEndDatePopup-title": "Changer la date de fin",
|
||||
"assigned-by": "Assigné par",
|
||||
"requested-by": "Demandé par",
|
||||
"board-delete-notice": "La suppression est définitive. Vous perdrez toutes vos listes, cartes et actions associées à ce tableau.",
|
||||
"board-delete-notice": "La suppression est définitive. Vous perdrez toutes les listes, cartes et actions associées à ce tableau.",
|
||||
"delete-board-confirm-popup": "Toutes les listes, cartes, étiquettes et activités seront supprimées et vous ne pourrez pas retrouver le contenu du tableau. Il n'y a pas d'annulation possible.",
|
||||
"boardDeletePopup-title": "Supprimer le tableau ?",
|
||||
"delete-board": "Supprimer le tableau",
|
||||
|
@ -497,11 +497,11 @@
|
|||
"show-subtasks-field": "Les cartes peuvent avoir des sous-tâches",
|
||||
"deposit-subtasks-board": "Déposer des sous-tâches dans ce tableau :",
|
||||
"deposit-subtasks-list": "Liste de destination pour les sous-tâches déposées ici :",
|
||||
"show-parent-in-minicard": "Voir le parent dans la mini-carte :",
|
||||
"show-parent-in-minicard": "Voir la carte parente dans la mini-carte :",
|
||||
"prefix-with-full-path": "Préfixer avec le chemin complet",
|
||||
"prefix-with-parent": "Préfixer avec le parent",
|
||||
"subtext-with-full-path": "Sous-texte avec le chemin complet",
|
||||
"subtext-with-parent": "Sous-texte avec le parent",
|
||||
"subtext-with-full-path": "Sous-titre avec le chemin complet",
|
||||
"subtext-with-parent": "Sous-titre avec le parent",
|
||||
"change-card-parent": "Changer le parent de la carte",
|
||||
"parent-card": "Carte parente",
|
||||
"source-board": "Tableau source",
|
||||
|
|
|
@ -712,6 +712,14 @@ Cards.helpers({
|
|||
}
|
||||
},
|
||||
|
||||
getId() {
|
||||
if (this.isLinked()) {
|
||||
return this.linkedId;
|
||||
} else {
|
||||
return this._id;
|
||||
}
|
||||
},
|
||||
|
||||
getTitle() {
|
||||
if (this.isLinkedCard()) {
|
||||
const card = Cards.findOne({ _id: this.linkedId });
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "wekan",
|
||||
"version": "1.33.0",
|
||||
"version": "1.34.0",
|
||||
"description": "The open-source kanban",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
|
|
|
@ -22,10 +22,10 @@ const pkgdef :Spk.PackageDefinition = (
|
|||
appTitle = (defaultText = "Wekan"),
|
||||
# The name of the app as it is displayed to the user.
|
||||
|
||||
appVersion = 118,
|
||||
appVersion = 119,
|
||||
# Increment this for every release.
|
||||
|
||||
appMarketingVersion = (defaultText = "1.33.0~2018-08-16"),
|
||||
appMarketingVersion = (defaultText = "1.34.0~2018-08-22"),
|
||||
# Human-readable presentation of the app version.
|
||||
|
||||
minUpgradableAppVersion = 0,
|
||||
|
@ -226,7 +226,7 @@ const pkgdef :Spk.PackageDefinition = (
|
|||
verbPhrase = (defaultText = "removed from card"),
|
||||
), ],
|
||||
),
|
||||
|
||||
apiPath = "/api",
|
||||
saveIdentityCaps = true,
|
||||
),
|
||||
);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue