Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Jstree 2015 #3995

Merged
merged 176 commits into from
Sep 11, 2015
Merged

Jstree 2015 #3995

merged 176 commits into from
Sep 11, 2015

Conversation

will-moore
Copy link
Member

This is @dpwrussell's big #3141 jsTree PR rebased onto develop (again)!

This is currently "breaking" since the web-UI will need a lot of testing to check what's broken.

The OmeroWeb integrations tests test_tree.py and test_show.py are passing, but require @joshmoore's workarounds at #3910
I have had to do a lot of merge conflict on these tests, since the previous work was before the lib.ITest work. cc @ximenesuk @sbesson.

Next I will work on Robot tests to get them passing before we go to manual testing of web scenarios.

NB: Many PRs (since last year) have conflicted with changes here and may have been broken in the merging above so lots of retesting needed! cc @aleksandra-tarkowska

Rebased work:

--rebased-from #4112

dpwrussell and others added 30 commits July 22, 2015 12:01
Hotkeys is now built into jstree so remove that plugin

jstree + Everything else

Added appropriate HTTP Response Codes to REST API

Changed default paging and no-arguments for tree.py functions

Functions will now return as much data as possible by default, it is
then filtered by some or all of the other options.

Added capability to customize the page size on REST API views
and tree.py

Small tidyup remocing comments and whitespace changes

Removed leftover old '-locked' check
Some whitespace and comment changes also

Whitespace and comments

Fixed extra parameter in marshalling plate acquisitions

Expand node on selection by default

Added select on up/down keys in jstree

Changed expand-on-open jstree to use click not select

This is to allow keypress navigation without opening everything

Also, enable double click on a jstree image to open the full-viewer

Load, but not open nodes on select with key navigation as that is
what the current client does

Restore selection intelligently upon refresh

Added child count indicator and ensure it is updated when its number of
children change

Correctly update the child count of containers within the tree
when changing one of their identical brethren

Fix re-load on selection change on already loaded jstree nodes

Fix slight issue with duplicate node child count on insertion in jstree

Added conditional selection to jstree to prevent selection of different
types simultaneously

Comment on group-dropdown behaviour

Remove group-user drowndown enhancements from branch

Improvements to public share/discussion interface

REST API now offers the capability to return all shares/discussions,
optionally filter by those that a user is a member of and/or the owner
of.

Webclient updated to use new API interface

Webclient public interface now responds correctly to dblclick

Webclient public interface now correctly updates the right panel

Webclient public interface now correctly handles the case where a shared
image has been deleted

Remove old functions

Added 400 Bad Request to handling of ajax errors

Also added a 400 for ValidationException for the containers api to test with initially

Added more exception handling to REST API

Fixed double-loading when expand-on-select in jstree

Fix rename of P/D/I updates jsTree node name

jsTree up/down hotkeys deselect_all() then select_node()

Handle left & right jsTree hotkeys

Slight readability improvement to hotkeys

Handle renaming with identical nodes in jstree

Added comment on renaming nodes in jstree on change

Disallowed selection of multiple of the same item simultaneously in
the jstree

Handle all the possible exceptions in REST API and return appropriate HTTP Response Codes

Minor PEP8 corrections

Fix area select

Handled filtering the centre panel results

Correctly update the jstree toolbar when updating the tree selection in
response to filtering or icon selection

Updated webclient area selection to only update dom and jstree once
instead of once per icon selected

Fix bug in REST API view where group context was not being taken into account
when listing tagged objects

Added DELETE list of tags capability to the REST API

Fix toolbar and deleting tags in webclient Tags panel

Comment and minor fix

Fixed buttons toggle on tags panel when selecting in middle panel in
webclient
Disabled multiple selection of the same object
Enabled load on select, open in click and double click open for images

Remove 'annotation' button config from webclient as it doens't seem to exist

Fix share/discussion REST API that was returning duplicate rows in some
cases

Integration tests for marshalling of shares/discussions

Added crosslinked object checks to tree tests

Correctly disable paste button after emptying paste buffer

Updated jstree to latest standard release (3.0.8)

Add missing locate functionality when nodes are created

Reinstated 5.0 cut behaviour

Context menu 5.0 cut behaviour

Very nearly completed reworking of thumbnail update + conventional cut
support.

Committing for safety reasons

Fixed numerous issues with updating thumbs/tree on
copy/cut/move/delete/dnd including some to do with updating other
identical nodes and/or child counts

Fixed missing plugin in tags/public
Fixed missing data on copied nodes

Conflicts:
	components/tools/OmeroWeb/omeroweb/webclient/static/webclient/css/layout.css
	components/tools/OmeroWeb/omeroweb/webclient/static/webclient/javascript/ome.webclient.actions.js
	components/tools/OmeroWeb/omeroweb/webclient/templates/webclient/annotations/annotations_share.html
	components/tools/OmeroWeb/omeroweb/webclient/templates/webclient/data/container_tags.html
	components/tools/OmeroWeb/omeroweb/webclient/templates/webclient/data/containers.html
	components/tools/OmeroWeb/omeroweb/webclient/templates/webclient/data/containers_icon.html
	components/tools/OmeroWeb/omeroweb/webclient/templates/webclient/data/includes/center_plugin.thumbs.js.html
	components/tools/OmeroWeb/omeroweb/webclient/templates/webclient/data/includes/hotkeys.js
	components/tools/OmeroWeb/omeroweb/webclient/templates/webclient/data/plate.html
	components/tools/OmeroWeb/omeroweb/webclient/templates/webclient/public/public.html
	components/tools/OmeroWeb/omeroweb/webclient/tree.py
	components/tools/OmeroWeb/omeroweb/webclient/urls.py
	components/tools/OmeroWeb/omeroweb/webclient/views.py
	components/tools/OmeroWeb/omeroweb/webgateway/static/3rdparty/jquery.hotkeys-0.8.js
	components/tools/OmeroWeb/omeroweb/webgateway/static/3rdparty/jquery.jstree-1.0-rc3/jquery.jstree.js
	components/tools/OmeroWeb/omeroweb/webgateway/static/3rdparty/jquery.jstree-1.0-rc3/themes/apple/bg.jpg
	components/tools/OmeroWeb/omeroweb/webgateway/static/3rdparty/jquery.jstree-1.0-rc3/themes/apple/d.png
	components/tools/OmeroWeb/omeroweb/webgateway/static/3rdparty/jquery.jstree-1.0-rc3/themes/apple/dot_for_ie.gif
	components/tools/OmeroWeb/omeroweb/webgateway/static/3rdparty/jquery.jstree-1.0-rc3/themes/apple/style.css
	components/tools/OmeroWeb/omeroweb/webgateway/static/3rdparty/jquery.jstree-1.0-rc3/themes/apple/throbber.gif
	components/tools/OmeroWeb/omeroweb/webgateway/static/3rdparty/jquery.jstree-1.0-rc3/themes/classic/d.gif
	components/tools/OmeroWeb/omeroweb/webgateway/static/3rdparty/jquery.jstree-1.0-rc3/themes/classic/d.png
	components/tools/OmeroWeb/omeroweb/webgateway/static/3rdparty/jquery.jstree-1.0-rc3/themes/classic/dot_for_ie.gif
	components/tools/OmeroWeb/omeroweb/webgateway/static/3rdparty/jquery.jstree-1.0-rc3/themes/classic/style.css
	components/tools/OmeroWeb/omeroweb/webgateway/static/3rdparty/jquery.jstree-1.0-rc3/themes/classic/throbber.gif
	components/tools/OmeroWeb/omeroweb/webgateway/static/3rdparty/jquery.jstree-1.0-rc3/themes/default-rtl/d.gif
	components/tools/OmeroWeb/omeroweb/webgateway/static/3rdparty/jquery.jstree-1.0-rc3/themes/default-rtl/d.png
	components/tools/OmeroWeb/omeroweb/webgateway/static/3rdparty/jquery.jstree-1.0-rc3/themes/default-rtl/dots.gif
	components/tools/OmeroWeb/omeroweb/webgateway/static/3rdparty/jquery.jstree-1.0-rc3/themes/default-rtl/style.css
	components/tools/OmeroWeb/omeroweb/webgateway/static/3rdparty/jquery.jstree-1.0-rc3/themes/default-rtl/throbber.gif
	components/tools/OmeroWeb/omeroweb/webgateway/static/3rdparty/jquery.jstree-1.0-rc3/themes/default/d.gif
	components/tools/OmeroWeb/omeroweb/webgateway/static/3rdparty/jquery.jstree-1.0-rc3/themes/default/d.png
	components/tools/OmeroWeb/omeroweb/webgateway/static/3rdparty/jquery.jstree-1.0-rc3/themes/default/style_ie.css
	components/tools/OmeroWeb/test/integration/test_show.py
	components/tools/OmeroWeb/test/integration/test_tree.py
Conflicts:
	components/tools/OmeroWeb/test/integration/test_tree.py
Conflicts:
	components/tools/OmeroWeb/test/unit/test_tree.py
Removed perms test which is not for inclusion here

Conflicts:
	components/tools/OmeroWeb/test/integration/test_tree.py
	components/tools/OmeroWeb/test/integration/test_tree_perms.py
Conflicts:
	components/tools/OmeroWeb/omeroweb/webclient/templates/webclient/public/public.html
Also some reformatting of public.html

Conflicts:
	components/tools/OmeroWeb/omeroweb/webclient/templates/webclient/public/public.html
Conflicts:
	components/tools/OmeroWeb/omeroweb/webclient/static/webclient/javascript/ome.webclient.actions.js
panel

Conflicts:
	components/tools/OmeroWeb/omeroweb/webclient/static/webclient/javascript/ome.webclient.actions.js
	components/tools/OmeroWeb/omeroweb/webclient/templates/webclient/data/container_tags.html
	components/tools/OmeroWeb/omeroweb/webgateway/templates/webgateway/base/includes/script_src_jquery.html
	components/tools/OmeroWeb/omeroweb/webgateway/templates/webgateway/base_site.html
Replaced 'isOwned' with the owned id in the JSON interface

Also handled ome-cut/paste for crosslinked data including multi-linked
and child counts

Conflicts:
	components/tools/OmeroWeb/omeroweb/webclient/static/webclient/javascript/ome.webclient.actions.js
	components/tools/OmeroWeb/omeroweb/webclient/tree.py
	components/tools/OmeroWeb/test/integration/test_tree.py
otherwise

Conflicts:
	components/tools/OmeroWeb/omeroweb/webclient/templates/webclient/data/container_tags.html
Conflicts:
	components/tools/OmeroWeb/test/unit/test_tree.py
also causing the disabling on some context menus

Conflicts:
	components/tools/OmeroWeb/omeroweb/webclient/static/webclient/javascript/ome.webclient.actions.js
	components/tools/OmeroWeb/omeroweb/webclient/templates/webclient/data/containers.html
styling

Conflicts:
	components/tools/OmeroWeb/omeroweb/webclient/templates/webclient/data/chgrp_target_tree.html
Ran all the robot tests, searched the runserver urls log for 301 redirects
caused by missing trailing slashes. Only ones found were caused by robot tests
themselves.
@will-moore
Copy link
Member Author

@sbesson @pwalczysko @joshmoore @jburel I think this PR is pretty much ready to merge now. Anything else need mentioning / discussing / scheduling?

@pwalczysko
Copy link
Member

Will have a look at the trello card

@pwalczysko
Copy link
Member

There is still a desynchronization between tree and central pane in cases where the names of images end in a style such as [......#10]. Such images are sorted in the tree in a manner where #10 goes before #1, whereas in the central pane they are sorted "correctly".

To repeat, navigate to http://eel.openmicroscopy.org/merge/webclient/?show=image-1861 (login as member-all-7, the "pagination" db must be deployed on eel) and use the down key to see the desynchronization.

@will-moore
Copy link
Member Author

@pwalczysko The sorting bug was purely upper-case vv lower-case issue, fixed by always sorting with lower-case. Also fixed the sorting in table, to handle items with same name (sort these by id).

@pwalczysko
Copy link
Member

OK. So after the new commits are in, the testing

  1. Navigate to http://eel.openmicroscopy.org/merge/webclient/?show=dataset-201 , login member-all-7
  2. Expand the dataset and check using the down arrow key click through every single image, on both pages, checking the sync
  3. Switch to list view in central pane and check that the Name column shows just one arrow (because it s already sorted).
  4. Sort by Name, clicking on the sinlge arrow, and go through the whole dataset again (sort again on second page)
  5. Cut all the images in the dataset without Paste (which will bring them into Orphaned) and repeat steps 2 - 4 above in Orphaned.

I think this test exhaustively covers all the untested commits here. Possibly we could manage a rebuild today ? @sbesson @joshmoore ?

@pwalczysko
Copy link
Member

2 more problems:

  1. the bruker images are still loaded out of sync between tree and central panel in case they are in a dataset (the bug goes away after sorting by Name, and is not present in Orphaned)
  2. Select an image in central pane, then click on another image (5 images highter) and then click onto the tree (on the selected image). After this, use the down key -> the next selected image (both in tree and central) will be the last image you clicked in the central pane on (= the one 5 images lower), not the next first lower image as expected
    (3. when cutting and pasting lot of images from and to Orphaned folder, the "irresponsive script" warinng in Firefox keeps coming up -> this is probably not a regression)

@pwalczysko
Copy link
Member

Another potential problem - after cut and paste of Bruker set inot Orphaned, when there already are some Brukers present, the newly pasted Burkers do not appear in the tree, just in the central pane (all sorts itself out after a refresh).

@will-moore
Copy link
Member Author

@pwalczysko The tree and thumbnail sorting should be fully sync'd now since I'm sorting the thumbnails on load. Also the thumbnail selection followed by hotkey should keep everything in sync too.

@pwalczysko
Copy link
Member

All good here, even the copy and paste of Bruker into the same folder twice without refresh is now fine #3995 (comment). Went trough orphaned and in-dataset workflow, multipage with bruker, also sorting by name and date, in orphaned and dataset.
All works as expected.
As discussed with @will-moore the Unresponsive script... dialog problem when Cut and Paste whole Page of images will be sorted in another PR (ticket will follow during this morning when I investigate further).
Ready to merge.

@joshmoore
Copy link
Member

🎉 🎈 👏 🍰 :shipit: 🚀 🏆 🍻

joshmoore added a commit that referenced this pull request Sep 11, 2015
@joshmoore joshmoore merged commit 5a188b4 into ome:develop Sep 11, 2015
@will-moore
Copy link
Member Author

Thanks all for testing and bug-fixes!

@dpwrussell
Copy link
Member

Thanks for all the hard work pushing this home, sorry I couldn't do it myself!

@pwalczysko
Copy link
Member

Next step : Does the webtagging work ? (looking)

@pwalczysko
Copy link
Member

  1. The webtagging on eel merge does not work (after selection of Auto Tag, the central pane is just blank, impossible to even start)
  2. The Tag Search seems to work fine, except some formatting issue in the tagging box
    screen shot 2015-09-11 at 13 32 29

@dpwrussell
Copy link
Member

Yeah, I knew it wouldn't but was waiting until it was merged to fix it.
Should only be a few minor tweaks required.
On Sep 11, 2015 8:35 AM, "pwalczysko" notifications@github.com wrote:

  1. The webtagging on eel merge does not work (after selection of Auto
    Tag, the central pane is just blank, impossible to even start)
  2. The Tag Search seems to work fine, except some formatting issue in
    the tagging box [image: screen shot 2015-09-11 at 13 32 29]
    https://cloud.githubusercontent.com/assets/2478303/9814914/e4e76d3e-5889-11e5-93c6-6c4cd652ad76.png


Reply to this email directly or view it on GitHub
#3995 (comment)
.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants