mirror of
https://github.com/wekan/wekan.git
synced 2025-04-22 04:57:07 -04:00
Merge pull request #4598 from Viehlieb/feature/save_description_on_card_exit
Feature/save description on card exit
This commit is contained in:
commit
5b883f4ea6
6 changed files with 69 additions and 1 deletions
|
@ -1714,10 +1714,29 @@ BlazeComponent.extendComponent({
|
|||
EscapeActions.register(
|
||||
'detailsPane',
|
||||
() => {
|
||||
// if card description diverges from database due to editing
|
||||
// ask user whether changes should be applied
|
||||
if(currentUser.profile.rescueCardDescription== true)
|
||||
{
|
||||
currentDescription = document.getElementsByClassName("editor js-new-description-input").item(0)
|
||||
if (currentDescription?.value && !(currentDescription.value === Utils.getCurrentCard().getDescription()))
|
||||
{
|
||||
if (confirm(TAPi18n.__('rescue-card-description-dialogue'))) {
|
||||
Utils.getCurrentCard().setDescription(document.getElementsByClassName("editor js-new-description-input").item(0).value);
|
||||
// Save it!
|
||||
console.log(document.getElementsByClassName("editor js-new-description-input").item(0).value);
|
||||
console.log("current description",Utils.getCurrentCard().getDescription());
|
||||
} else {
|
||||
// Do nothing!
|
||||
console.log('Description changes were not saved to the database.');
|
||||
}
|
||||
}
|
||||
}
|
||||
if (Session.get('cardDetailsIsDragging')) {
|
||||
// Reset dragging status as the mouse landed outside the cardDetails template area and this will prevent a mousedown event from firing
|
||||
Session.set('cardDetailsIsDragging', false);
|
||||
Session.set('cardDetailsIsMouseDown', false);
|
||||
|
||||
} else {
|
||||
// Prevent close card when the user is selecting text and moves the mouse cursor outside the card detail area
|
||||
Utils.goBoardId(Session.get('currentBoard'));
|
||||
|
|
|
@ -180,6 +180,13 @@ template(name="changeSettingsPopup")
|
|||
option(selected="true", value="#{day.value}") #{day.name}
|
||||
else
|
||||
option(value="#{day.value}") #{day.name}
|
||||
label.bold.clear
|
||||
| {{_ 'card-settings'}}
|
||||
ul#cards.card-description-rescued
|
||||
a.flex.js-rescue-card-description(title="{{_ 'rescue-card-description'}}")
|
||||
b
|
||||
#rescue-card-description.materialCheckBox.left(class="{{#if rescueCardDescription}}is-checked{{/if}}", value=rescueCardDescription)
|
||||
span {{_ 'rescue-card-description'}}
|
||||
input.js-apply-user-settings.left(type="submit" value="{{_ 'apply'}}")
|
||||
|
||||
template(name="userDeletePopup")
|
||||
|
|
|
@ -297,6 +297,16 @@ Template.changeSettingsPopup.helpers({
|
|||
return false;
|
||||
}
|
||||
},
|
||||
rescueCardDescription() {
|
||||
currentUser = Meteor.user();
|
||||
if (currentUser) {
|
||||
return (currentUser.profile || {}).rescueCardDescription;
|
||||
} else if (window.localStorage.getItem('rescueCardDescription')) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
},
|
||||
showCardsCountAt() {
|
||||
currentUser = Meteor.user();
|
||||
if (currentUser) {
|
||||
|
@ -356,6 +366,9 @@ Template.changeSettingsPopup.events({
|
|||
window.localStorage.setItem('hasHiddenSystemMessages', 'true');
|
||||
}
|
||||
},
|
||||
'click .js-rescue-card-description'() {
|
||||
Meteor.call('toggleRescueCardDescription')
|
||||
},
|
||||
'click .js-apply-user-settings'(event, templateInstance) {
|
||||
event.preventDefault();
|
||||
let minLimit = parseInt(
|
||||
|
|
|
@ -541,6 +541,9 @@
|
|||
"rename": "Umbenennen",
|
||||
"rename-board": "Board umbenennen",
|
||||
"restore": "Wiederherstellen",
|
||||
"rescue-card-description": "Vor dem Schließen Dialog für ungespeicherte Änderungen von Kartenbeschreibungen anzeigen",
|
||||
"rescue-card-description-dialogue": "Aktuelle Kartenbeschreibung mit ihren Änderungen überschreiben?",
|
||||
"card-settings": "Karteneinstellungen",
|
||||
"save": "Speichern",
|
||||
"search": "Suchen",
|
||||
"rules": "Regeln",
|
||||
|
@ -1178,4 +1181,4 @@
|
|||
"action": "Aktion",
|
||||
"board-title": "Board-Titel",
|
||||
"attachmentRenamePopup-title": "Umbenennen"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -541,6 +541,9 @@
|
|||
"rename": "Rename",
|
||||
"rename-board": "Rename Board",
|
||||
"restore": "Restore",
|
||||
"rescue-card-description": "Show rescue dialogue before closing for unsaved card descriptions",
|
||||
"rescue-card-description-dialogue": "Overwrite current card description with your changes?",
|
||||
"card-settings":"Card Settings",
|
||||
"save": "Save",
|
||||
"search": "Search",
|
||||
"rules": "Rules",
|
||||
|
|
|
@ -337,6 +337,13 @@ Users.attachSchema(
|
|||
type: Date,
|
||||
optional: true,
|
||||
},
|
||||
'profile.rescueCardDescription': {
|
||||
/**
|
||||
* show dialog for saving card description on unintentional card closing
|
||||
*/
|
||||
type: Boolean,
|
||||
optional: true,
|
||||
},
|
||||
'profile.showCardsCountAt': {
|
||||
/**
|
||||
* showCardCountAt field of the user
|
||||
|
@ -794,6 +801,11 @@ Users.helpers({
|
|||
return profile.hiddenMinicardLabelText || false;
|
||||
},
|
||||
|
||||
hasRescuedCardDescription(){
|
||||
const profile = this.profile || {};
|
||||
return profile.rescueCardDescription || false;
|
||||
},
|
||||
|
||||
getEmailBuffer() {
|
||||
const { emailBuffer = [] } = this.profile || {};
|
||||
return emailBuffer;
|
||||
|
@ -1004,6 +1016,13 @@ Users.mutations({
|
|||
},
|
||||
};
|
||||
},
|
||||
toggleRescueCardDescription(value = false) {
|
||||
return {
|
||||
$set: {
|
||||
'profile.rescueCardDescription': !value,
|
||||
},
|
||||
};
|
||||
},
|
||||
|
||||
addNotification(activityId) {
|
||||
return {
|
||||
|
@ -1103,6 +1122,10 @@ Meteor.methods({
|
|||
const user = Meteor.user();
|
||||
user.toggleLabelText(user.hasHiddenMinicardLabelText());
|
||||
},
|
||||
toggleRescueCardDescription() {
|
||||
const user = Meteor.user();
|
||||
user.toggleRescueCardDescription(user.hasRescuedCardDescription());
|
||||
},
|
||||
changeLimitToShowCardsCount(limit) {
|
||||
check(limit, Number);
|
||||
Meteor.user().setShowCardsCountAt(limit);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue