Patch Tasks Always Show Details of New Tasks

From WebOS Internals
Jump to navigation Jump to search
Tasks.png

Introduction

I've made a small modification that changes how new tasks are handled. Ordinarily, new tasks appear at the bottom of the task list. In this view, you need to tap again to enter details like a due date. With this modification when add a task, the details card appears (pictured). At this window you can immediately set the task name, due date, task list, and priority. You're not forced to fill out each of those fields, they're just available. Enter your info, then swipe back and you'll see your new task in the list, or close the new task card (flick up) and the task is saved automatically.

Disclaimer

I've tested this on v1.03 and v1.04 and I haven't had any problems yet. Use at your own risk. I'm not responsible. And make a backup!

Editing Process

Accessing linux is required. These directions assume you have already done so.

1. Mount for rw access:

mount -o remount,rw /


2. Make a backup of the file! Don't be lazy!

cd /usr/palm/applications/com.palm.app.tasks/app/controllers/
cp tasks-assistant.js tasks-assistant.js.bak

3. Then open the file /usr/palm/applications/com.palm.app.tasks/app/controllers/tasks-assistant.js

vi tasks-assistant.js

4. In _newTask: function(previousTask)

Replace line 917 (line 921 in os 1.1):

this.listElement.mojo.focusItem(task);

with this code:

this.state.edit.call(this, index);

5. Also, replace line 940 of the same file (line 944 in os 1.1):

self.listElement.mojo.focusItem(task);

with this code:

self.state.edit.call(self, index);

6. Save and reboot.

mount -o remount,ro /
reboot

Enjoy!

(os 1.1 changes verified by tcurtin on 7/24/09)

Contact Me

Please leave me a note if it works for you: http://www.everythingpre.com/forum/webos-development/new-mod-always-show-new-task-details-21326.html#post106281

//-Tuckmobile//

Patching Process

Procedure

Run the following commands:

In this example, I have the patch file located in my home directory under patches <source lang="bash"> cd / sudo patch -p0 --backup-if-mismatch < ~/patches/tasks.patch </source>

This is what you should see if it ran properly: <source lang="text"> patching file /usr/palm/applications/com.palm.app.tasks/app/controllers/tasks-assistant.js </source>

These modifications will require LunaSysMgr to be restarted. A rescan will not work. After you've run the commands above, run one more command: <source lang="bash"> pkill LunaSysMgr </source>

tasks.patch

<source lang="diff"> diff -ur /usr/palm/applications/com.palm.app.tasks/app/controllers/tasks-assistant.js /usr/palm/app-modified/com.palm.app.tasks/app/controllers/tasks-assistant.js --- /usr/palm/applications/com.palm.app.tasks/app/controllers/tasks-assistant.js 2009-07-18 00:22:06.000000000 -0500 +++ /usr/palm/app-modified/com.palm.app.tasks/app/controllers/tasks-assistant.js 2009-07-28 10:50:52.000000000 -0500 @@ -918,7 +918,7 @@

			this.listElement.mojo.insertItemsAt(index, [task]);
			this.listElement.mojo.revealItem(index);
			this.addWidgets(this.listElement.mojo.getNodeByIndex(index).querySelector('[name="subject"]'), task);

- this.listElement.mojo.focusItem(task); + this.state.edit.call(this, index); //this.listElement.mojo.focusItem(task);

			task.priority = previousTask.priority; // Attempt to inherit the priority
			

@@ -941,7 +941,7 @@

				{
					// If we find the node we just added, focus on it.  We might not find the node however if the list is being refreshed
					self.addWidgets(node.querySelector('[name="subject"]'), task);

- self.listElement.mojo.focusItem(task); + self.state.edit.call(self, index); //self.listElement.mojo.focusItem(task);

				}
				
				Mojo.Log.info("New task %j %j", task, self.task);

</source>