Specifically, in a list of two elements in which each element was a link,
clicking right after the first element and then pressing ctrl-L to end the
link didn't work as expected. Now it does.
This involve changing the non-IE portion of Editor.insert_link() to use a different sort of title placeholder hack.
Also, as part of this commit, Editor now determines browser type once instead of for every Editor created.
This was due to a race condition between the link info pulldown's
onblur/onchange handler and the suggestion onclick handler, both of which
tried to update the link, title, and summary at about the same time.
- change model.Notebook.sql_search_notes() to be a static method
- take a first_notebook_id argument and a user_id argument
- join user_notebook on notebook_id and matches on user_notebook.user_id instead of notebook_id
- order by notebook_id = first_notebook desc, rank instead of just rank
- include search result for notebooks readable by anonymous user, but only if such a notebook is given as first_notebook_id
- update code that calls model.Notebook.sql_search_notes()
- update model.Note.to_dict() to include notebook_id
- modify Wiki.display_search_results()
- separate search results for the current notebook and results for all other notebooks
- indicate which notebook each result is from
- if there are results in other notebooks but no results in the current notebook, indicate that clearly
- when you click on a result note link in the current notebook, it should simply open a new note
- when you click on a result note link in another notebook, it should open in a new window
- test in IE
- update unit tests for:
- controller.Notebooks.search()
- model.Notebook.sql_search_notes()
- model.Note.to_dict()
* Using the browser's tweaked version of the initial HTML, instead of the HTML that we tell the browser to use.
* Improved normalize_html() function to handle more cases.
* Added start_dirty flag to Editor() constructor and made use of it for completely new notes.
There is still at least one case (IE only) where this detection fails and a
note unaltered by the user gets resaved to the server. This is because IE
alters relative links within design mode documents.
The bug arose because Firefox shows br tags as "<br>" even when they are
initially "<br />". This meant that the initial and current html didn't match
up, so dirty() returned true even though nothing had changed.
In IE, there's a similar problem because IE likes to uppercase all tags. That
will be fixed in a subsequent commit.
prevent some session deadlock errors.
* Fixed some bugs with the new auto-resizing toolbar:
* In IE 6/7, when you click on a formatting button such as italics, it
doesn't visibly depress, because update_toolbar() is causing it to
unpress until you start typing the italic text. Fixed by only calling
update_toolbar() in focused_editor() if focused_editor is null.
* When downing or upping a toolbar button, now calling
resize_toolbar_button() unconditionally.
* Added new optional previous_revision params to default(), contents() and load_note() in controller.Notebooks.
These use Html_differ() to generate and return diffs.
* Updated Wiki.js:
* provide previous_revision when a revision is opened in a new window/tab
* call load_note() when two revisions when a revision is clicked in Changes_pulldown
* update compare_versions() to display a diff instead of opening the two revisions separately
* update load_editor():
* update all invocations of load_editor(), including in Editor.js, to accept a new previous_revision argument
* modify load_editor() to use the previous_revision argument (when supplied) to load a diff
* Added a bunch of thumbnail-related methods to controller.Files.
* Modified Files.download() method to redirect to image preview if
requested.
* Implemented image preview to popup full image in a separate window.
* Added empty stubs for relevant unit tests. Still to-do.
* Added new dependency on python-imaging package (PIL).
* Updated file info popup to include clickable thumbnail.
* new toolbar button for attaching a file
* button opens new Upload_pulldown() for uploading a file
* began controller.Notebooks.upload_file() to process the upload
text cursor. The previous workaround involved appending <span> tags and had
other negative side-effects. The new workaround involves removing extra <br>
tags.
* change controller.Notebooks.load_note_revisions() to select and return User_revision objects
* change controller.Notebooks.save_note() to use User_revision objects for new_revision and previous_revision as well
* update client to deal with new load_note_revisions() return values (make sure all uses of revisions_list are updated)
* update client to deal with new new_revision/previous_revision
* update changes pulldown to show username along with each timestamp
* update model.Invite to load redeemed_username along with redeemed_user_id
* display the redeemed username next to each email address in the "share this notebook" note