mirror of
https://github.com/pierre42100/ComunicWeb
synced 2024-11-26 05:49:22 +00:00
Can create a new choice for a survey
This commit is contained in:
parent
237b40afab
commit
cc0d405de8
@ -305,6 +305,25 @@ async function showConfirmDialog(msg) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Ask the user to enter a string
|
||||||
|
*
|
||||||
|
* @param {String} title The dialog of the dialog to show
|
||||||
|
* @param {String} message Helper message to show to the user
|
||||||
|
* @param {String} defaultValue The default value of the message
|
||||||
|
*/
|
||||||
|
async function showInputTextDialog(title, message, defaultValue = "") {
|
||||||
|
return new Promise((res, rej) =>
|
||||||
|
ComunicWeb.common.messages.inputString(
|
||||||
|
title,
|
||||||
|
message,
|
||||||
|
defaultValue,
|
||||||
|
(msg) => msg === false ? rej : res(msg)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Prepare for potential future translation system
|
* Prepare for potential future translation system
|
||||||
*
|
*
|
||||||
|
@ -229,6 +229,19 @@ const PostsInterface = {
|
|||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new choice for this survey
|
||||||
|
*
|
||||||
|
* @param {number} postID The ID of the associated post
|
||||||
|
* @param {String} choice The value of the choice
|
||||||
|
*/
|
||||||
|
createSurveyChoice: async function(postID, choice) {
|
||||||
|
await api("survey/create_new_choice", {
|
||||||
|
postID: postID,
|
||||||
|
choice: choice
|
||||||
|
}, true);
|
||||||
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Prevent new choices from being created
|
* Prevent new choices from being created
|
||||||
*
|
*
|
||||||
|
@ -881,6 +881,38 @@ ComunicWeb.components.posts.ui = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Offer the user to create a new response, if possible
|
||||||
|
if(info.data_survey.user_choice == 0 && info.data_survey.allowNewChoices) {
|
||||||
|
|
||||||
|
const link = createElem2({
|
||||||
|
appendTo: surveyResponse,
|
||||||
|
type: "div",
|
||||||
|
class: "a txt-center",
|
||||||
|
innerHTML: tr("Add a new choice to this survey")
|
||||||
|
});
|
||||||
|
|
||||||
|
link.addEventListener("click", async () => {
|
||||||
|
|
||||||
|
try {
|
||||||
|
const choice = await showInputTextDialog(
|
||||||
|
tr("Create a choice"),
|
||||||
|
tr("Please specify the new choice you would like to create for this survey:"),
|
||||||
|
""
|
||||||
|
);
|
||||||
|
|
||||||
|
await PostsInterface.createSurveyChoice(info.ID, choice);
|
||||||
|
|
||||||
|
//Reload post
|
||||||
|
ComunicWeb.components.posts.actions.reload_post(info.ID, postRoot);
|
||||||
|
|
||||||
|
} catch(e) {
|
||||||
|
console.error(e);
|
||||||
|
notify(tr("Could not create a new choice for this survey!"), "danger");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// If the user is the owner of the survey, offer him to close it
|
// If the user is the owner of the survey, offer him to close it
|
||||||
if(info.data_survey.userID == userID() && info.data_survey.allowNewChoices) {
|
if(info.data_survey.userID == userID() && info.data_survey.allowNewChoices) {
|
||||||
|
|
||||||
@ -903,6 +935,7 @@ ComunicWeb.components.posts.ui = {
|
|||||||
ComunicWeb.components.posts.actions.reload_post(info.ID, postRoot);
|
ComunicWeb.components.posts.actions.reload_post(info.ID, postRoot);
|
||||||
|
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
|
console.error(e);
|
||||||
notify(tr("Could not block new choices from being created!"), "danger");
|
notify(tr("Could not block new choices from being created!"), "danger");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user