mirror of
				https://github.com/SillyTavern/SillyTavern.git
				synced 2025-06-05 21:59:27 +02:00 
			
		
		
		
	add remove tasks
This commit is contained in:
		| @@ -61,7 +61,7 @@ async function generateQuietPrompt(quiet_prompt) { | |||||||
|  |  | ||||||
| // Accepts optional position. Defaults to adding to end of list. | // Accepts optional position. Defaults to adding to end of list. | ||||||
| function addTask(description, position = null) { | function addTask(description, position = null) { | ||||||
|     position = position ? position != null : position = globalTasks.length |     position = position != null ? position: position = globalTasks.length | ||||||
|     globalTasks.splice(position, 0, { |     globalTasks.splice(position, 0, { | ||||||
|         "description": description, |         "description": description, | ||||||
|         "completed": false |         "completed": false | ||||||
| @@ -78,19 +78,24 @@ function getTask(index = null, taskDescription = null) { | |||||||
|         task = globalObjective[index] |         task = globalObjective[index] | ||||||
|     } else if (taskDescription != null) { |     } else if (taskDescription != null) { | ||||||
|         task = globalTasks.find(task => { |         task = globalTasks.find(task => { | ||||||
|             return true ? task.description == description : false |             return task.description == description ? true: false | ||||||
|         }) |         }) | ||||||
|     } |     } | ||||||
|     return task |     return task | ||||||
| } | } | ||||||
|  |  | ||||||
|  | function deleteTask(index){ | ||||||
|  |     globalTasks.splice(index, 1) | ||||||
|  |     setCurrentTask() | ||||||
|  |     updateUiTaskList() | ||||||
|  | } | ||||||
|  |  | ||||||
| // Complete the current task, setting next task to next incomplete task | // Complete the current task, setting next task to next incomplete task | ||||||
| function completeTask(task) { | function completeTask(task) { | ||||||
|     task.completed = true |     task.completed = true | ||||||
|     console.info(`Task successfully completed: ${JSON.stringify(task)}`) |     console.info(`Task successfully completed: ${JSON.stringify(task)}`) | ||||||
|     setCurrentTask() |     setCurrentTask() | ||||||
|     updateUiTaskList() |     updateUiTaskList() | ||||||
|     saveState() |  | ||||||
| } | } | ||||||
|  |  | ||||||
| // Call Quiet Generate to create task list using character context, then convert to tasks. Should not be called much. | // Call Quiet Generate to create task list using character context, then convert to tasks. Should not be called much. | ||||||
| @@ -227,6 +232,8 @@ function addUiTask(taskIndex, taskComplete, taskDescription) { | |||||||
|           <span>${taskIndex}</span> |           <span>${taskIndex}</span> | ||||||
|           <input id="objective-task-complete-${taskIndex}" type="checkbox"> |           <input id="objective-task-complete-${taskIndex}" type="checkbox"> | ||||||
|           <span class="text_pole" style="display: block" id="objective-task-description-${taskIndex}" contenteditable>${taskDescription}</span> |           <span class="text_pole" style="display: block" id="objective-task-description-${taskIndex}" contenteditable>${taskDescription}</span> | ||||||
|  |           <div id="objective-task-delete-${taskIndex}" class="objective-task-button fa-solid fa-xmark fa-2x" title="Delete Task"></div> | ||||||
|  |           <div id="objective-task-add-${taskIndex}" class="objective-task-button fa-solid fa-plus fa-2x" title="Add Task"></div> | ||||||
|       </div><br> |       </div><br> | ||||||
|     `; |     `; | ||||||
|      |      | ||||||
| @@ -244,17 +251,40 @@ function addUiTask(taskIndex, taskComplete, taskDescription) { | |||||||
|         const index = Number(event.target.id.split('-').pop()); |         const index = Number(event.target.id.split('-').pop()); | ||||||
|         globalTasks[index].description = event.target.textContent; |         globalTasks[index].description = event.target.textContent; | ||||||
|     }); |     }); | ||||||
|  |     $(`#objective-task-delete-${taskIndex}`).on('click', event => { | ||||||
|  |         const index = Number(event.target.id.split('-').pop()); | ||||||
|  |         deleteTask(index)         | ||||||
|  |     }); | ||||||
|  |     $(`#objective-task-add-${taskIndex}`).on('click', event => { | ||||||
|  |         const index = Number(event.target.id.split('-').pop()) + 1; | ||||||
|  |         addTask("", index) | ||||||
|  |         setCurrentTask() | ||||||
|  |         updateUiTaskList() | ||||||
|  |     }); | ||||||
| } | } | ||||||
|  |  | ||||||
| // Populate UI task list | // Populate UI task list | ||||||
| function updateUiTaskList() { | function updateUiTaskList() { | ||||||
|     $('#objective-tasks').empty() |     $('#objective-tasks').empty() | ||||||
|     for (const index in globalTasks) { |     // Show tasks if there are any | ||||||
|         addUiTask( |     if (globalTasks.length > 0){ | ||||||
|             index, |         for (const index in globalTasks) { | ||||||
|             globalTasks[index].completed, |             addUiTask( | ||||||
|             globalTasks[index].description |                 index, | ||||||
|         ) |                 globalTasks[index].completed, | ||||||
|  |                 globalTasks[index].description | ||||||
|  |             ) | ||||||
|  |         } | ||||||
|  |     } else { | ||||||
|  |     // Show button to add tasks if there are none | ||||||
|  |         $('#objective-tasks').append(` | ||||||
|  |         <input id="objective-task-add-first" type="button" class="menu_button" value="Add Task"> | ||||||
|  |         `) | ||||||
|  |         $("#objective-task-add-first").on('click', () => { | ||||||
|  |             addTask("") | ||||||
|  |             setCurrentTask() | ||||||
|  |             updateUiTaskList() | ||||||
|  |         }) | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -14,3 +14,23 @@ | |||||||
| .objective_block_control label { | .objective_block_control label { | ||||||
|     width: max-content; |     width: max-content; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | .objective-task-button { | ||||||
|  |     margin: 0; | ||||||
|  |     outline: none; | ||||||
|  |     border: none; | ||||||
|  |     cursor: pointer; | ||||||
|  |     transition: 0.3s; | ||||||
|  |     opacity: 0.7; | ||||||
|  |     align-items: center; | ||||||
|  |     justify-content: center; | ||||||
|  |      | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .objective-task-button:hover { | ||||||
|  |     opacity: 1; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | [id^=objective-task-delete-] { | ||||||
|  |     color: #da3f3f; | ||||||
|  | } | ||||||
		Reference in New Issue
	
	Block a user