[Toaster] [PATCH] toaster: layerdetails Fix back button tab behaviour

Brian Avery avery.brian at gmail.com
Sun Sep 20 13:27:55 PDT 2015


Hi,

I'm confused. If I Navigate as follows, it fails (i think):
start: http://192.168.168.66:8005/toastergui/project/2/
click Recipes, takes me to :
http://192.168.168.66:8005/toastergui/project/2/recipes/?limit=25&page=1&orderby=name&
click Back , takes me to :
http://192.168.168.66:8005/toastergui/project/2/recipes/
click Back again, takes me to:
http://192.168.168.66:8005/toastergui/project/2/
click Forward, takes me to:
http://192.168.168.66:8005/toastergui/project/2/recipes/?limit=25&page=1&orderby=name&
click Back, takes me to:
http://192.168.168.66:8005/toastergui/project/2/recipes/
click Back again, takes me to:
http://192.168.168.66:8005/toastergui/project/2/

---

Seems like 1 forward == two backs.  Is it my browser is chrome on the
mac, though I saw the same behaviour with firefox on ubuntu.

-b

On Wed, Sep 16, 2015 at 4:32 AM, Michael Wood <michael.g.wood at intel.com> wrote:
> This completes the behaviour fix of the back button in the layerdetails
> page as we not only have parameters in our history we also have the hash
> to indicate which tab is active. As we pop our history we need to show
> the corresponding tab.
>
> [YOCTO #8252]
>
> Signed-off-by: Michael Wood <michael.g.wood at intel.com>
> ---
>  .../toaster/toastergui/static/js/layerdetails.js   | 28 ++++++++++++++++++----
>  1 file changed, 23 insertions(+), 5 deletions(-)
>
> diff --git a/bitbake/lib/toaster/toastergui/static/js/layerdetails.js b/bitbake/lib/toaster/toastergui/static/js/layerdetails.js
> index 000e803..8817b47 100644
> --- a/bitbake/lib/toaster/toastergui/static/js/layerdetails.js
> +++ b/bitbake/lib/toaster/toastergui/static/js/layerdetails.js
> @@ -7,6 +7,9 @@ function layerDetailsPageInit (ctx) {
>    var layerDepsList = $("#layer-deps-list");
>    var currentLayerDepSelection;
>    var addRmLayerBtn = $("#add-remove-layer-btn");
> +  var targetTab = $("#targets-tab");
> +  var machineTab = $("#machines-tab");
> +  var detailsTab = $("#details-tab");
>
>    /* setup the dependencies typeahead */
>    libtoaster.makeTypeahead(layerDepInput, libtoaster.ctx.layersTypeAheadUrl, { include_added: "true" }, function(item){
> @@ -15,6 +18,21 @@ function layerDetailsPageInit (ctx) {
>      layerDepBtn.removeAttr("disabled");
>    });
>
> +  $(window).on('hashchange', function(e){
> +    switch(window.location.hash){
> +      case '#machines':
> +        machineTab.tab('show');
> +        break;
> +      case '#recipes':
> +        targetTab.tab('show');
> +        break;
> +      default:
> +        detailsTab.tab('show');
> +        break;
> +    }
> +  });
> +
> +
>    $(".breadcrumb li:first a").click(function(e){
>      e.preventDefault();
>      /* By default this link goes to the project configuration page. However
> @@ -143,7 +161,7 @@ function layerDetailsPageInit (ctx) {
>        addRmLayerBtn.removeClass("btn-danger");
>    }
>
> -  $("#details-tab").on('show', function(){
> +  detailsTab.on('show', function(){
>      if (!ctx.layerVersion.inCurrentPrj)
>        defaultAddBtnText();
>
> @@ -174,7 +192,7 @@ function layerDetailsPageInit (ctx) {
>        $("#no-recipes-yet").hide();
>      }
>
> -    $("#targets-tab").removeClass("muted");
> +    targetTab.removeClass("muted");
>      if (window.location.hash === "#recipes"){
>        /* re run the machinesTabShow to update the text */
>        targetsTabShow();
> @@ -189,7 +207,7 @@ function layerDetailsPageInit (ctx) {
>      else
>        $("#no-machines-yet").hide();
>
> -    $("#machines-tab").removeClass("muted");
> +    machineTab.removeClass("muted");
>      if (window.location.hash === "#machines"){
>        /* re run the machinesTabShow to update the text */
>        machinesTabShow();
> @@ -202,7 +220,7 @@ function layerDetailsPageInit (ctx) {
>
>    });
>
> -  $("#targets-tab").on('show', targetsTabShow);
> +  targetTab.on('show', targetsTabShow);
>
>    function machinesTabShow(){
>      if (!ctx.layerVersion.inCurrentPrj) {
> @@ -219,7 +237,7 @@ function layerDetailsPageInit (ctx) {
>      window.location.hash = "machines";
>    }
>
> -  $("#machines-tab").on('show', machinesTabShow);
> +  machineTab.on('show', machinesTabShow);
>
>    $(".pagesize").change(function(){
>      var search = libtoaster.parseUrlParams();
> --
> 2.1.4
>
> --
> _______________________________________________
> toaster mailing list
> toaster at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/toaster


More information about the toaster mailing list