From webOS 24
Jump to: navigation, search

Open Proposals

To Do Synergy

The built-in To Do app is unfortunately "underpowered". When you add a Microsoft Exchange account, the to do items from that account are synced into the to do list, but none of the many to do or "Getting Things Done" (GTD) services out there are natively supported by a synergy plug in. I would like to have synergy plug ins for "Remember The Milk", "Toodledo" and whatever popular services are out there.

Answer Call with SMS

If you cannot pick up a call but want the person to inform why you did it, you can send predefined SMS to the caller.

Plain Text Mail Patch

Since webOS 2.x all mails are sent as single part HTML mail, which is a pain for all plain text mail clients. I need a patch that allows the user to switch between plain text and HTML according to his likings. It should also be able to change the default behaviour (not per mail) of the mail app.

Signature Management

I need a patch or an app, which allows me to manage all my signatures. I am using different plain text signatures for different accounts. I would like to enter a new or changed signature once and to assign it to the accounts that should use it. The signature should be properly marked up as <pre> when assigned to a HTML account and should be kept plain text when done otherwise (see previous point). In general I have m signatures and need to assign them to n mail accounts.

Mail Folder Check Preferences

The mail app is currently only checking the inbox for new mails. As I am running several sieve scripts on my servers, which sort incoming mails into specific folders, I would like to have a patch, which allows me to specify whether I would like to check the inboxes, all IMAP folders or a set of IMAP folders for new mails.

GNUPG Encryption / Decryption

I am receiving a lot of GPG encrypted mails and need a patch that allows me to decrypt those mails and to send them encrypted again.

IMAP Folder Rescan

If I create new IMAP folders via other applications, the mail app does not know about them. The only way I know so far is to remove and to recreate an e-mail account, which is simply not feasable. I need a patch that scans all accounts for new, changed and removed IMAP folders under certain circumstances (when having WLAN, every week, on demand etc).

Settled Proposals

Editable Phone Number Patch

I would like to have a patch that makes the phone number in the telephone app editable. At the moment there is no way of deleting an extension, removing numbers from the phone number etc, so that I am forced to enter the whole number again in order to dial it.

Thanks to a fellow webOS Nation member I received a diff, which makes the phone number editable. It works on Pre3, webOS 2.2.4 and took him 12 hours to develop and still has potential for further improvements:

diff Dialer.js /usr/palm/applications/
< 			case 16: // SHIFT
< 			case 17: // SYM
< 				rtnValue = false;
< 				var pos = this.$.dialStringWidget.getCursorPos();
< 				pos += e.keyCode==16 ? -1 : 1;
< 				this.$.dialStringWidget.setCursorPos(pos);
< 				this.$.dialStringWidget.setValue(this.$.dialStringWidget.getValue());
< 				break;

diff DialStringWidget.js /usr/palm/applications/ 
< 		cursorPos: 0,
< 		{name: "client", flex: 1, kind:"RichText", className: "dialstring-input", readonly: true, disabled: true},
> 		{name: "client", flex: 1, kind:"Input", className: "dialstring-input", readonly: true, disabled: true},
< 	cursorPosChanged: function(oldPos) {
< 		this.rawString = this.rawString.split(' ').join('');
< 		if(this.cursorPos < 0)
< 			this.cursorPos = this.rawString.length-1;
< 		if(this.cursorPos >= this.rawString.length)
< 			this.cursorPos = 0;		
< 		this._setValue(this.rawString, true);
< 	},
< 			this.$.client.$.input.setStyle("font-size: 16px;");
< //			if (bTruncateEnd)
< //				this.leftTruncatedDialString = inValue.slice(0, 20) + "...";
< //			else
< //				this.leftTruncatedDialString = "..." + inValue.slice(inValue.length-20, inValue.length);
< //			this.$.client.setValue(this.leftTruncatedDialString);
< //			return;
< 		}
< 		var pos = this.cursorPos;
< 		for(var i=0; i<=pos; i++)
< 			if(inValue.charAt(i)==' ')
< 				pos++;
< 		inValue = inValue.slice(0, pos) + '<b><i>' + inValue.charAt(pos) + '</i></b>' + inValue.slice(pos+1);
> 			this.$.client.$.input.setStyle("font-size: 18px;");
> 			if (bTruncateEnd)
> 				this.leftTruncatedDialString = inValue.slice(0, 20) + "...";
> 			else
> 				this.leftTruncatedDialString = "..." + inValue.slice(inValue.length-20, inValue.length);
> 			this.$.client.setValue(this.leftTruncatedDialString);
> 			return;
> 		}
< //			this.rawString += inChar;
< 		this.rawString = this.rawString.slice(0, this.cursorPos+1) + inChar + this.rawString.slice(this.cursorPos+1);	
> 			this.rawString += inChar;
< //			this._setValue(this.rawString);
< 			this.setCursorPos(this.cursorPos+1);
> 			this._setValue(this.rawString);
< 			this.rawString = this.rawString.split(' ').join('');
< 			this.rawString = this.rawString.slice(0, this.cursorPos) + this.rawString.slice(this.cursorPos+1);
< 			this.setCursorPos(this.cursorPos-1);
> 			this.rawString = this.rawString.slice(0, -1);