Uploaded image for project: 'IGB'
  1. IGB
  2. IGBF-2387

Modify the Genome Dashboard popup to link directly to installer

    Details

    • Type: New Feature
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Done
    • Affects Version/s: None
    • Fix Version/s: None
    • Labels:
      None
    • Story Points:
      0.5
    • Sprint:
      Spring 8 : 11 May to 25 May, Spring 9 : 25 May to 8 Jun, Summer 1: 8 Jun - 19 Jun

      Description

      Note: Do this after IGBF-2386 has been merged into master.

      The new genome dashboard application (https://www.bioviz.org/genome-dashboard) shows images representing different species for which genome sequence data are available.

      When users click an image, the latest genome version for the featured species is supposed to load into IGB.

      However, this only works if IGB is currently running.

      So the Genome Dashboard App has some code that checks to see if IGB is running.

      If IGB is not running, then it shows a popup to let them know to start IGB.

      The popup includes button labeled "Download Now" which takes the user to the IGB download page.

      This is great, but it would be more convenient for users if the button actually were to trigger downloading of the installer for the user's platform. This would save the user a bunch of clicks and would also get them started using IGB faster.

      For this task, modify the button code so that matches what happens when users visit the IGB downloads page (https://www.bioviz.org/download.html), which figures out the user's platform and then dynamically builds a link to the installer they need.

      Note that some code for this already exists on the BioViz.org Web site and in this repository: https://bitbucket.org/lorainelab/bioviz

      Also note that genome-dashboard, although in a different repository from the bioviz code, is meant to be deployed onto the same host as the bioviz Web site code.

      Therefore you should re-use and/or re-design existing BioViz javascript code for this task. Otherwise, there will be two separate implementations of the same functionality in our code bases, which makes maintenance unnecessarily complex. The possible need for re-factoring is why the story points are so high.

      Sameer is doing an internship this summer, but I think it would be fine to consult with him on this as needed.

      Note: Please do IGBF-2386 first.

      cc: Sameer Shanbhag

        Attachments

          Issue Links

            Activity

            Hide
            sameer Sameer Shanbhag (Inactive) added a comment - - edited

            Javascript that supports this functionality is defined on

            Javascript to refer to

            Browser.js
                    <script>
                        $(window).on("load",function (e) {
                            var parser = new UAParser();
                            var os = parser.getOS().name;
                            var systemConfig = parser.getCPU();
                            if (os == "Linux" || os == "CentOS" || os == "Fedora" || os == "FreeBSD" || os == "Debian" || os == "DragonFly" || os == "RedHat" || os == "Mint" || os == "GNU" || os == "Ubuntu") {
                                $("#linuxDownload").removeClass("hide");
                            }
                            if (os == "Windows [Phone/Mobile]" || os == "Windows") {
                                if (systemConfig.architecture == "amd64" || systemConfig.architecture == "ia64" || systemConfig.architecture == "arm64" || systemConfig.architecture == "irix64" || systemConfig.architecture == "mips64" || systemConfig.architecture == "sparc64") {
                                    $("#windows64Download").removeClass("hide");
                                } else {
                                    $("#windows64Download").removeClass("hide");
                                    $("#windows32Download").removeClass("hide");
                                }
                                $("#windows_warning").removeClass("hide");
                            }
                            if (os == "Mac OS X" || os == "Mac OS") {
                                $("#osxDownload").removeClass("hide");
                            }
            
                        });
                    </script>
            

            Task:

            • The Javascript is defined in the script tag on the bioviz download page specified above, therefore the first task would be to extract it to a .js file so that it can be used/resued by any other application.
            • The Download Now button on Genome Dashboard resides inside a modal, Updating the link that the button is pointing to will complete this task.

            c.c. Prof. [~aloraine]

            Show
            sameer Sameer Shanbhag (Inactive) added a comment - - edited Javascript that supports this functionality is defined on https://www.bioviz.org/download.html Javascript to refer to Browser.js <script> $(window).on( "load" ,function (e) { var parser = new UAParser(); var os = parser.getOS().name; var systemConfig = parser.getCPU(); if (os == "Linux" || os == "CentOS" || os == "Fedora" || os == "FreeBSD" || os == "Debian" || os == "DragonFly" || os == "RedHat" || os == "Mint" || os == "GNU" || os == "Ubuntu" ) { $( "#linuxDownload" ).removeClass( "hide" ); } if (os == "Windows [Phone/Mobile]" || os == "Windows" ) { if (systemConfig.architecture == "amd64" || systemConfig.architecture == "ia64" || systemConfig.architecture == "arm64" || systemConfig.architecture == "irix64" || systemConfig.architecture == "mips64" || systemConfig.architecture == "sparc64" ) { $( "#windows64Download" ).removeClass( "hide" ); } else { $( "#windows64Download" ).removeClass( "hide" ); $( "#windows32Download" ).removeClass( "hide" ); } $( "#windows_warning" ).removeClass( "hide" ); } if (os == "Mac OS X" || os == "Mac OS" ) { $( "#osxDownload" ).removeClass( "hide" ); } }); </script> Task: The Javascript is defined in the script tag on the bioviz download page specified above, therefore the first task would be to extract it to a .js file so that it can be used/resued by any other application. The Download Now button on Genome Dashboard resides inside a modal, Updating the link that the button is pointing to will complete this task. c.c. Prof. [~aloraine]
            Hide
            ann.loraine Ann Loraine added a comment -

            Thanks for the guidance Sameer Shanbhag !

            Show
            ann.loraine Ann Loraine added a comment - Thanks for the guidance Sameer Shanbhag !
            Hide
            ann.loraine Ann Loraine added a comment -

            Also, see code implemented by Karthik for BioViz connect.

            Show
            ann.loraine Ann Loraine added a comment - Also, see code implemented by Karthik for BioViz connect.
            Hide
            pbadzuh Philip Badzuh (Inactive) added a comment -

            [~aloraine], would you prefer that the subtitle link and the button both link directly to the installer or just the latter?

            Show
            pbadzuh Philip Badzuh (Inactive) added a comment - [~aloraine] , would you prefer that the subtitle link and the button both link directly to the installer or just the latter?
            Hide
            ann.loraine Ann Loraine added a comment -

            Thanks for asking. Because the subtitle link label is "Integrated Genome Browser," it should continue to open the download page in a new window as it currently does.

            cc: Philip Badzuh

            Show
            ann.loraine Ann Loraine added a comment - Thanks for asking. Because the subtitle link label is "Integrated Genome Browser," it should continue to open the download page in a new window as it currently does. cc: Philip Badzuh
            Hide
            pbadzuh Philip Badzuh (Inactive) added a comment -
            Show
            pbadzuh Philip Badzuh (Inactive) added a comment - Sounds good, I left it as is. Please see my changes here: https://bitbucket.org/pbadzuh/genome-dashboard_pbdev/commits/79227ba1f8f20982196ca7faa2a5b37e8dde14b0
            Hide
            ann.loraine Ann Loraine added a comment -

            Code looks good. Please proceed to submit PR.

            Show
            ann.loraine Ann Loraine added a comment - Code looks good. Please proceed to submit PR.
            Hide
            pbadzuh Philip Badzuh (Inactive) added a comment -

            The popup looks as shown in updated_popup.png

            Show
            pbadzuh Philip Badzuh (Inactive) added a comment - The popup looks as shown in updated_popup.png
            Show
            pbadzuh Philip Badzuh (Inactive) added a comment - Please see PR here: https://bitbucket.org/lorainelab/genome-dashboard/pull-requests/7/igbf-2386-and-igbf-2387-update-popup-text/diff
            Hide
            ann.loraine Ann Loraine added a comment -

            Deployed to https://test.bioviz.org/genome-dashboard and ready for testing.

            Show
            ann.loraine Ann Loraine added a comment - Deployed to https://test.bioviz.org/genome-dashboard and ready for testing.
            Hide
            nfreese Nowlan Freese added a comment - - edited

            Testing https://test.bioviz.org/genome-dashboard on Mac with chrome.

            IGB not running.
            Clicking on genome presents popup.
            Clicking Download Now successfully downloads the correct installer for Mac (IGB_macos_current.dmg).

            [~aloraine] should this issue be tested on Windows/Linux before closing?

            Show
            nfreese Nowlan Freese added a comment - - edited Testing https://test.bioviz.org/genome-dashboard on Mac with chrome. IGB not running. Clicking on genome presents popup. Clicking Download Now successfully downloads the correct installer for Mac (IGB_macos_current.dmg). [~aloraine] should this issue be tested on Windows/Linux before closing?
            Hide
            nfreese Nowlan Freese added a comment -

            When is the dashboard checking to see if IGB is running?

            On https://test.bioviz.org/genome-dashboard, if I load the dashboard page when IGB is not running, then start IGB, then click on a genome in the dashboard, I get the popup informing me to start IGB. I have to refresh the page for it to load the genome in IGB.

            If I have IGB running when I load the dashboard page, then close IGB, then click on a genome in the dashboard, I receive a notification that "This site can’t be reached".

            Is it possible to check if IGB is running each time a genome is clicked?

            Show
            nfreese Nowlan Freese added a comment - When is the dashboard checking to see if IGB is running? On https://test.bioviz.org/genome-dashboard , if I load the dashboard page when IGB is not running, then start IGB, then click on a genome in the dashboard, I get the popup informing me to start IGB. I have to refresh the page for it to load the genome in IGB. If I have IGB running when I load the dashboard page, then close IGB, then click on a genome in the dashboard, I receive a notification that "This site can’t be reached". Is it possible to check if IGB is running each time a genome is clicked?
            Hide
            ann.loraine Ann Loraine added a comment -

            yes - should be tested on Windows and Linux as well.

            cc: Nowlan Freese

            Show
            ann.loraine Ann Loraine added a comment - yes - should be tested on Windows and Linux as well. cc: Nowlan Freese
            Hide
            ann.loraine Ann Loraine added a comment -

            Yes, this absolutely should be done.

            Could you create user story (ticket) for that?

            cc: Nowlan Freese

            Show
            ann.loraine Ann Loraine added a comment - Yes, this absolutely should be done. Could you create user story (ticket) for that? cc: Nowlan Freese
            Hide
            nfreese Nowlan Freese added a comment -

            Created IGBF-2407 and linked to this issue.

            Show
            nfreese Nowlan Freese added a comment - Created IGBF-2407 and linked to this issue.
            Hide
            gchamma Jay Chamma (Inactive) added a comment -

            Post merge testing:
            Clicking "Install IGB" after trying to load a genome version on IGB from the "Genome Versions" tab on Genome Dashboard directly loads installer window with the correct operating system of the user.

            • Tested on both Windows 10 64-bit and MacOS.

            Steps I took to confirm this on Windows 10 64-bit :
            1. Made sure IGB was not running in the background
            2. Visited the Genome Dashboard @ https://www.bioviz.org/genome-dashboard
            3. Clicked on Genome Versions at the bottom of a card
            4. Clicked on "View on IGB" (was asked to download IGB if I didn't have it)
            5. Clicked on "Install IGB"
            6. The Genome Dashboard successfully tried to download IGB with the correct operating system.

            • I took the same steps on a MacOS machine and everything worked as intended

            From an earlier comment by [~aloraine], this needs to be tested on a Linux machine as well before closing

            • I will be installing Linux on a virtual machine soon for personal reasons and would test this feature there as soon as possible.
            Show
            gchamma Jay Chamma (Inactive) added a comment - Post merge testing: Clicking "Install IGB" after trying to load a genome version on IGB from the "Genome Versions" tab on Genome Dashboard directly loads installer window with the correct operating system of the user. Tested on both Windows 10 64-bit and MacOS. Steps I took to confirm this on Windows 10 64-bit : 1. Made sure IGB was not running in the background 2. Visited the Genome Dashboard @ https://www.bioviz.org/genome-dashboard 3. Clicked on Genome Versions at the bottom of a card 4. Clicked on "View on IGB" (was asked to download IGB if I didn't have it) 5. Clicked on "Install IGB" 6. The Genome Dashboard successfully tried to download IGB with the correct operating system. I took the same steps on a MacOS machine and everything worked as intended From an earlier comment by [~aloraine] , this needs to be tested on a Linux machine as well before closing I will be installing Linux on a virtual machine soon for personal reasons and would test this feature there as soon as possible.
            Hide
            cdias1 Chester Dias (Inactive) added a comment -

            Ubuntu Testing
            Followed Up on the same step done by Jay
            On Clicking the Install IGB an executable script IGB_unix_current.sh is downloaded.

            Show
            cdias1 Chester Dias (Inactive) added a comment - Ubuntu Testing Followed Up on the same step done by Jay On Clicking the Install IGB an executable script IGB_unix_current.sh is downloaded.
            Hide
            cdias1 Chester Dias (Inactive) added a comment - - edited

            While executing the script I got the below message

            chester@chester-Inspiron-5537:~/Downloads$ ./IGB_unix_current.sh 
            Unpacking JRE ...
            Starting Installer ...
            Gtk-Message: 11:15:38.918: Failed to load module "canberra-gtk-module"
            

            Is this expected [~aloraine] , Nowlan Freese? The script executes successfully though and installs the IGB application which works.

            Show
            cdias1 Chester Dias (Inactive) added a comment - - edited While executing the script I got the below message chester@chester-Inspiron-5537:~/Downloads$ ./IGB_unix_current.sh Unpacking JRE ... Starting Installer ... Gtk-Message: 11:15:38.918: Failed to load module "canberra-gtk-module" Is this expected [~aloraine] , Nowlan Freese ? The script executes successfully though and installs the IGB application which works.
            Hide
            ann.loraine Ann Loraine added a comment -

            Since the install actually happens and IGB can run, closing this ticket.

            Show
            ann.loraine Ann Loraine added a comment - Since the install actually happens and IGB can run, closing this ticket.

              People

              • Assignee:
                pbadzuh Philip Badzuh (Inactive)
                Reporter:
                ann.loraine Ann Loraine
              • Votes:
                0 Vote for this issue
                Watchers:
                6 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: