handling applied task state

This commit is contained in:
sairaj mote 2024-02-06 04:19:36 +05:30
parent e8ecd3204e
commit c1c55b32c9
3 changed files with 34 additions and 13 deletions

View File

@ -65,7 +65,7 @@
</div> </div>
<div class="multi-state-button"> <div class="multi-state-button">
<button class="button button--primary" id="task_popup__submit" onclick="saveTask()" <button class="button button--primary" id="task_popup__submit" onclick="saveTask()"
type="submit">Submit</button> type="submit">Save</button>
</div> </div>
</sm-form> </sm-form>
</sm-popup> </sm-popup>

View File

@ -581,6 +581,10 @@ window.smCompConfig = {
} }
async function applyToTask(id) { async function applyToTask(id) {
if (!floGlobals.isUserLoggedIn) {
location.hash = '#/sign_in'
return notify('You need to be logged in to apply to a task')
}
const confirmation = await getConfirmation('Apply to task', { message: 'Are you sure you want to apply to this task?' }) const confirmation = await getConfirmation('Apply to task', { message: 'Are you sure you want to apply to this task?' })
if (!confirmation) return if (!confirmation) return
// apply to task // apply to task
@ -680,16 +684,17 @@ async function deleteTask(id) {
const render = { const render = {
task(details = {}) { task(details = {}) {
const { title, description, date, id, status, deadline, category } = details; const { title, description, date, id, status, deadline, category } = details;
let actions = '' let actions = '';
if (floGlobals.isSubAdmin) { if (floGlobals.isSubAdmin) {
actions = html` actions = html`
<button class="button button--outlined" onclick=${() => editTask(id)}>Edit</button> <button class="button button--outlined" onclick=${() => editTask(id)}>Edit</button>
<button class="button button--outlined" onclick=${() => deleteTask(id)}>Delete</button> <button class="button button--outlined" onclick=${() => deleteTask(id)}>Delete</button>
` `
} else if (!floGlobals.isAdmin) { } else if (!floGlobals.isAdmin) {
// actions = html` const applied = floGlobals.applications.has(id)
// <button class=${`button ${applied ? '' : 'button--outlined'}`} data-task-id=${id} onclick=${() => applyToTask(id)} ?disabled=${applied}>${applied ? 'Applied' : 'Apply'}</button> actions = html`
// ` <button class=${`button ${applied ? '' : 'button--outlined'}`} data-task-id=${id} onclick=${() => applyToTask(id)} ?disabled=${applied}>${applied ? 'Applied' : 'Apply'}</button>
`
} }
return html` return html`
<li class="task-card" .dataset=${{ id }}> <li class="task-card" .dataset=${{ id }}>
@ -1072,13 +1077,20 @@ window.addEventListener("load", () => {
} }
promises.push(floCloudAPI.requestGeneralData('taskApplications')) promises.push(floCloudAPI.requestGeneralData('taskApplications'))
await Promise.all(promises) await Promise.all(promises)
const taskApplications = floDapps.getNextGeneralData('taskApplications', '0');
} else if (floGlobals.isAdmin) { } else if (floGlobals.isAdmin) {
} else { } else {
floGlobals.applications = new Set()
// fetch user's kyc requests // fetch user's kyc requests
await floCloudAPI.requestGeneralData('taskApplications', { await floCloudAPI.requestGeneralData('taskApplications', {
senderID: [floGlobals.myFloID, floGlobals.myBtcID], senderID: [floGlobals.myFloID, floGlobals.myBtcID],
}) })
const taskApplications = floDapps.getNextGeneralData('taskApplications', '0');
for (const application in taskApplications) {
const { message: { taskID } } = taskApplications[application];
floGlobals.applications.add(taskID)
}
} }
if (['#/landing', '#/sign_in', '#/sign_up'].includes(window.location.hash)) { if (['#/landing', '#/sign_in', '#/sign_up'].includes(window.location.hash)) {
history.replaceState(null, null, '#/home') history.replaceState(null, null, '#/home')
@ -1090,4 +1102,11 @@ window.addEventListener("load", () => {
console.error(err) console.error(err)
} }
}).catch(error => console.error(error)) }).catch(error => console.error(error))
}); });
// NOTE: Should we allow users to start working on a task without applying?
// If yes, then we can allow users to send updates regarding the task.
// handle task deadlines
// should we allow users to apply for multiple tasks?
// Add icons to the task categories

12
scripts/app.min.js vendored

File diff suppressed because one or more lines are too long