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. | ||||
| function addTask(description, position = null) { | ||||
|     position = position ? position != null : position = globalTasks.length | ||||
|     position = position != null ? position: position = globalTasks.length | ||||
|     globalTasks.splice(position, 0, { | ||||
|         "description": description, | ||||
|         "completed": false | ||||
| @@ -78,19 +78,24 @@ function getTask(index = null, taskDescription = null) { | ||||
|         task = globalObjective[index] | ||||
|     } else if (taskDescription != null) { | ||||
|         task = globalTasks.find(task => { | ||||
|             return true ? task.description == description : false | ||||
|             return task.description == description ? true: false | ||||
|         }) | ||||
|     } | ||||
|     return task | ||||
| } | ||||
|  | ||||
| function deleteTask(index){ | ||||
|     globalTasks.splice(index, 1) | ||||
|     setCurrentTask() | ||||
|     updateUiTaskList() | ||||
| } | ||||
|  | ||||
| // Complete the current task, setting next task to next incomplete task | ||||
| function completeTask(task) { | ||||
|     task.completed = true | ||||
|     console.info(`Task successfully completed: ${JSON.stringify(task)}`) | ||||
|     setCurrentTask() | ||||
|     updateUiTaskList() | ||||
|     saveState() | ||||
| } | ||||
|  | ||||
| // 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> | ||||
|           <input id="objective-task-complete-${taskIndex}" type="checkbox"> | ||||
|           <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> | ||||
|     `; | ||||
|      | ||||
| @@ -244,11 +251,23 @@ function addUiTask(taskIndex, taskComplete, taskDescription) { | ||||
|         const index = Number(event.target.id.split('-').pop()); | ||||
|         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 | ||||
| function updateUiTaskList() { | ||||
|     $('#objective-tasks').empty() | ||||
|     // Show tasks if there are any | ||||
|     if (globalTasks.length > 0){ | ||||
|         for (const index in globalTasks) { | ||||
|             addUiTask( | ||||
|                 index, | ||||
| @@ -256,6 +275,17 @@ function updateUiTaskList() { | ||||
|                 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() | ||||
|         }) | ||||
|     } | ||||
| } | ||||
|  | ||||
| // Trigger creation of new tasks with given objective. | ||||
|   | ||||
| @@ -14,3 +14,23 @@ | ||||
| .objective_block_control label { | ||||
|     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