Guillaume Lelarge a écrit :
Dave Page a écrit :
On Sat, Jun 14, 2008 at 3:01 PM, Guillaume Lelarge
<[EMAIL PROTECTED]> wrote:
Finally, here is the prototype. As I first talked about this one year
ago, I
will summarize the idea : adding a checkbox on the SQL tab of an
object's
properties to let the user change the SQL query. Checking will
disable the
contents of the other tabs because we don't want to try to reverse
engineer
the user's changes.
So, here is the patch that does this. I'm sure there's work left to
do (most
notably some duplicate code) but, at least, it works for me on two
different
scenarios : changing the SQL query and adding another SQL query.
I haven't tested yet (just reviewed the diff), but a couple of
thoughts come to mind:
- Can we disable the controls on the form, rather than the tabs so the
user can still browse the object details after modfying the SQL? (Or
does disabling the tab effectively do that?). The downside of that is
that we'd need to keep track of which controls were already disabled
when we disable them all, so if re-enabling them we end up in the
original state. I realise this is not what I suggested previously.
You can't really disable a tab. You disable the page of the tab, so you
can still browse the different tabs.
- Before returning to GUI mode, we should warn the user (if he has
modified the SQL) that his changes will be lost. Of he accepts the
change, the SQL should be regenerated immediately.
The patch does not warn the user, but I think it would be a good
addition. But the SQL is regenerated as soon as the user clicks on the
checkbox a second time.
So, before I test this on my lapdog, I'm sure we all want to know -
did anything actually explode?
AFAIK, no. Nothing exploded.
Grmbl... There's a big flaw in my patch. You're right once again.
Problem is, pgAdmin divide the queries to launch in two groups, only for
some objects : database and tablespace. The SQL textfield contains the
concatenation of the two groups. So we can't let the user change this
field if we aren't able to separate the two groups.
I think there are two possible ways to deal with this:
* the simpler, but confusing, one: add another textfield, put each
group in one textfield;
* the difficult, but less error prone, one: prevent the user to use the
read/write mode when he's on the database's properties (and the same
for tablespace).
I prefer the latter because it's less confusing for the user (why two
SQL textfields?), less error prone (what happens if the user takes SQL
textfield 1's contents and put it in SQL textfield 2?).
Desactivating the read/write mode for database and tablespace doesn't
seem a big issue to me, does it?
Comments?
--
Guillaume.
http://www.postgresqlfr.org
http://dalibo.com
--
Sent via pgadmin-hackers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers