Hi Rouslan,<br><br><div class="gmail_quote">On Mon, Jul 4, 2011 at 8:04 PM, Rouslan Placella <span dir="ltr"><<a href="mailto:rouslan@placella.com">rouslan@placella.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Hi Thilanka (and everyone else),<br>
<br>
You filed bug #3350790 on the tracker, which I looked into and fixed<br>
earlier. This also gave me a chance to look at the AJAXification of the<br>
index editor, which as I can see from your blog you have deemed<br>
completed. Anyway, I found some issues in your implementation and<br>
thought you might want to know about them.<br>
<br>
First, the JS errors from bug #3350790 are gone, but the functionality<br>
from checkIndexName() function in indexes.js only works in the QA_3_4<br>
branch. This is due to the AJAXification that you did. That function was<br>
written in plain JS, when there was no jQuery or AJAX. Line 44 in that<br>
file should have been a dead giveaway that the function was about to<br>
break (onload = checkIndexName;), since a browser does not fire an<br>
onload event for AJAX requests. Anyway, I think that the<br>
checkIndexName() function should be rewritten in jQuery and then called<br>
inside the AJAX request from tbl_structure.js. Also there is some inline<br>
JS in tbl_indexes.php, which you may want to rewrite in jQuery if you<br>
will be rewriting checkIndexName().<br>
<br>
Now for the fun stuff...<br>
<br>
<br>
Try this:<br>
* go to `sakila` db<br>
* go to `actor` table<br>
* go to structure tab<br>
* click on "Edit" link for the primary key<br>
* in the ajax dialog click 'Cancel'<br>
* click again on "Edit" link for the primary key<br>
* in the dialog click on "Go" (to add more rows to the table)<br>
Expected result:<br>
* 1 row is added to the table of indices<br>
Actual result:<br>
* The table of indices is cloned and 1 row is added to the first table<br>
<br>
<br>
Another thing is that the AJAX dialog should really be modal (you can<br>
make the dialog modal by adding "modal: true," to the dialog options in<br>
jQuery).<br>
Try this:<br>
* go to `sakila` db<br>
* go to `actor` table<br>
* go to structure tab<br>
* click on "Edit" link for the primary key<br>
* without closing the AJAX dialog, move it out of the way<br>
* click on "Edit" link for the `idx_actor_last_name` index<br>
* inside this new dialog click "Save"<br>
Expected result:<br>
* the dialog for `idx_actor_last_name` is submitted<br>
Actual result:<br>
* the dialog for the primary key is submitted<br>
<br>
<br>
Another bug:<br>
* go to `sakila` db<br>
* go to `actor` table<br>
* go to structure tab<br>
* click on "Edit" link for the primary key<br>
* set all rows in the table to "--ignore--"<br>
* click "Save"<br>
Expected result:<br>
* An error message<br>
Actual result:<br>
* An empty AJAX message<br>
<br>
<br>
Another thing is that the new function that you wrote to handle the<br>
SPATIAL indices doesn't actually work. The problem is that its event is<br>
attached using jQuery's 'bind' method, which is unsuitable for your<br>
purposes. I think that you should use the 'live' method that allows for<br>
late binding. After you do that, you will notice that the function still<br>
doesn't work as expected. This is because in this function you assume<br>
that you will always have one instance of each element that you<br>
reference by ID. However once the DOM has registered an element with a<br>
particular ID (open a dialog), even if you destroy that element and<br>
recreate it (close dialog/ open new dialog), the DOM will still<br>
reference the original, and now non-existent, element. The best way to<br>
deal with this is to use classes, then search for objects inside some<br>
common parent element.<br>
<br>
I guess that this is quite a mouthful of an email, hope it helps.<br>
</blockquote><div><br></div><div>This is very interesting and thanks for reporting. I'll quickly go through these facts and update you. </div><div><br></div><div>Regards,</div><div>Thilanka. </div><div><br></div></div>
-- <br><div><span style="border-collapse:collapse;font-family:arial, sans-serif;font-size:13px"><div style="text-align:left">L G Thilanka Kaushalya     <br>Computer Science & Engineering,    <br><div style="color:rgb(80, 0, 80)">
University of Moratuwa,<br>Sri Lanka<span></span><br>                          <br></div></div>Connect with me at,<br>      Gmail        : <a href="mailto:lgtkaushalya@gmail.com" style="color:rgb(0, 0, 204)" target="_blank">lgtkaushalya@gmail.com</a><br>
      Twitter       : @thilanka_k<br>      Facebook  : Thilanka Kaushalya<br>      Yahoo       : <a href="mailto:lgtkaushalya@yahoo.com" style="color:rgb(0, 0, 204)" target="_blank">lgtkaushalya@yahoo.com</a></span></div>
<div>      Blog          : <a href="http://coders-view.blogspot.com/" target="_blank">http://coders-view.blogspot.com/</a></div><br><br>