Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-25022

Walldisplay is not shown, if the project has the same name the current view

    Details

    • Type: Bug
    • Status: Resolved (View Workflow)
    • Priority: Minor
    • Resolution: Fixed
    • Component/s: walldisplay-plugin
    • Labels:
    • Environment:
      Installed plugin: Wall Display Master Project 0.6.27
      Jenkins 1.581
    • Similar Issues:

      Description

      There is a problem in walldisplay, if a view contains a project with the same name. In this case, the project is not show.

      To reproduce the problem:

      1. Create a project (or use an existing project).
      2. Create a view with the same name as the project in step 1.
      3. Add the project to the view.
      4. Select the view on the jenkins page.
      5. Click on Walldisplay (on the left menu) (while being on the newly created
      view).

      The reason is that when the view and job data is fetched the hash-variable
      updateRunning is used for both views as well as projects, that is:

      line 629: updateRunning[jobName] = true;

      line 386: updateRunning[jobName] = true;

      and the job data is only fetched if there is no update running:

      line 384: if(!updateRunning[jobName]){ ...

      I can see two solutions:

      a) use a prefix as key to updateRunning, i.e.:
      updateRunning["job:" + jobName] = true;

      b) use different hashes for internal (updateRunning), views
      (updateRunningViews) and projects (updateRunningJobs).

      The attached file "walldisplay.js.diff" implements the fix using the second method.

      Thank you for wall display and the effort you put into it. You make my life
      easier!

        Attachments

          Activity

          kmkkmk1 - created issue -
          kmkkmk1 - made changes -
          Field Original Value New Value
          Description There is a problem in walldisplay, if a view contains a project with the same name. In this case, the project is not show.

          To reproduce the problem:

            1. Create a project (or use an existing project).
            2. Create a view with the same name as the project in step 1.
            3. Add the project to the view.
            4. Select the view on the jenkins page.
            5. Click on Walldisplay (on the left menu) (while being on the newly created
               view).

          The reason is that when the view and job data is fetched the hash-variable
          updateRunning is used for both views as well as projects, that is:

          | line 629: updateRunning[jobName] = true;
          |
          | line 386: updateRunning[jobName] = true;

          and the job data is only fetched if there is no update running:

          | line 384: if(!updateRunning[jobName]){ ...

          I can see two solutions:

           a) use a prefix as key to updateRunning, i.e.:
              updateRunning["job:" + jobName] = true;

           b) use different hashes for internal (updateRunning), views
              (updateRunningViews) and projects (updateRunningJobs).

          The attached file "walldisplay.js.diff" implements the fix using the second method.

          Thank you for wall display and the effort you put into it. You make my life
          easier!
          There is a problem in walldisplay, if a view contains a project with the same name. In this case, the project is not show.

          To reproduce the problem:

            1. Create a project (or use an existing project).
            2. Create a view with the same name as the project in step 1.
            3. Add the project to the view.
            4. Select the view on the jenkins page.
            5. Click on Walldisplay (on the left menu) (while being on the newly created
               view).

          The reason is that when the view and job data is fetched the hash-variable
          updateRunning is used for both views as well as projects, that is:

          line 629: updateRunning[jobName] = true;

          line 386: updateRunning[jobName] = true;

          and the job data is only fetched if there is no update running:

          line 384: if(!updateRunning[jobName]){ ...

          I can see two solutions:

           a) use a prefix as key to updateRunning, i.e.:
              updateRunning["job:" + jobName] = true;

           b) use different hashes for internal (updateRunning), views
              (updateRunningViews) and projects (updateRunningJobs).

          The attached file "walldisplay.js.diff" implements the fix using the second method.

          Thank you for wall display and the effort you put into it. You make my life
          easier!
          pelle Christian Pelster made changes -
          Status Open [ 1 ] Resolved [ 5 ]
          Resolution Fixed [ 1 ]
          rtyler R. Tyler Croy made changes -
          Workflow JNJira [ 158920 ] JNJira + In-Review [ 195929 ]

            People

            • Assignee:
              pelle Christian Pelster
              Reporter:
              kmkkmk1 -
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: