Re: [Evolution-hackers] Where to put UI items for templates (Bug #127529)



On Fri, 2007-02-16 at 12:32 +0530, Sankar P wrote:
> On Thu, 2007-02-15 at 23:22 +0100, guenther wrote:
> > On Tue, 2007-02-13 at 21:05 +0530, Sankar P wrote:

> > > The Template should be singleton and each account may not have a
> > > separate template folder. (Should be like Outbox)
> > 
> > I'm not sure I agree here.
> > 
> > Still pondering, but... We offer per account Drafts folders. And I don't
> > yet see, why either one should be limited to a single, particular
> > machine in a, say, IMAP environment. Sent is not. Drafts is not. Why
> > should Templates be?
> > 
> > Based on this approach, I believe it actually should be per account,
> > being configurable exactly like the other "default" folders. Also, this
> > UI part should go there.
> > 
> > After all, Templates are Drafts that do not "delete them selves", right?
> 
> Whatever we store under Templates are not completely formed messages.
> They will not have any sender/recipient that a basic mail will have. 

Drafts are not completely formed messages either. They can be saved
without any recipient. There is no difference between Drafts and
Templates here, so this is not a reason to prevent per-account folders.

Regarding them "having no sender": This of course would not be an issue
when allowing per-account Templates folders. Also, if the basic
mechanism works just like Drafts, there always is an account associated
to them -- which may be changed before sending.


> Also it will contain things like ${DATE}, ${me},
> Reference-to-a-SIGNATURE-FILE, which takes some special interpretation
> that is specific to Evolution alone.

I seriously hope the ${DATE} example is just badly picked. This would
mean that shell script and Makefile snippets likely can't be stored in a
Template. Since GtkHTML uses HTML internally, storing variables and
placeholders in XML format is about the only safe choice.


> Overall, it is just Evolution that can make meaning out of a thing that
> is stored as a template in Evolution. It may not be of any use to other
> mail clients. So, I do not see any benefit by putting it in the server.

I do.

The benefit of IMAP is not only that you're client independent -- but
that you are location/machine independent. Yes, you can use the very
same IMAP account from different installations of the very same IMAP
client (let's just call that client Evolution...).

Another Advantage is that multiple, different accounts may have totally
different types of Templates.


> It is more like Signatures that are specific to Evolution and are stored
> locally in Evolution.
> 
> What will be really useful will be to have Names for these templates and
> we can associate a default template for an account (Again like
> signatures). These names can be used to choose, from "New from Template"
> dialog as well; Like OO templates-choosing dialog.

A basic approach to have Templates is the very same mechanism used for
Drafts. Except, that editing and sending a Template does not remove the
source.

What you just described here, is way more than Templates IMHO. It is
like a configurable "template" for New messages and Replies (otherwise
the ${DATE} doesn't make any sense to me). Also, having what you
described would render Signatures totally useless.


I believe, rather than hacking on "some Templates thingy" and discussing
about how to implement it, we first need to figure out what it is
supposed to accomplish, and how it could integrate with the current UI
and workflow of the existing user base.


IMHO a Template actually is pretty much the same as a Draft. And one of
the most important target uses for it are similar if not identical
messages you keep on sending. This btw is exactly, what users have been
asking for for a long time. Drafts, that don't vanish. Messages which
the user can write and format once -- and then send it out with just
some (user specific) placeholders substituted, or simply filled out.
Like a differing name, ETA, price, login, ...

  guenther


-- 
char *t="\10pse\0r\0dtu\0  ghno\x4e\xc8\x79\xf4\xab\x51\x8a\x10\xf4\xf4\xc4";
main(){ char h,m=h=*t++,*x=t+2*h,c,i,l=*x,s=0; for (i=0;i<l;i++){ i%8? c<<=1:
(c=*++x); c&128 && (s+=h); if (!(h>>=1)||!t[s+h]){ putchar(t[s]);h=m;s=0; }}}




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]