jenkinsci / dashboard-view-plugin

Jenkins dashboard-view plugin
https://plugins.jenkins.io/dashboard-view/
MIT License
46 stars 105 forks source link

Job List view on Dashboard broken with Jenkins v2.399 #294

Closed beyerjsb closed 8 months ago

beyerjsb commented 1 year ago
Environment ```text Jenkins: 2.397 OS: Windows 10 - 10.0 Java: 11.0.15 - Azul Systems, Inc. (OpenJDK 64-Bit Server VM) --- Office-365-Connector:4.18.0 PrioritySorter:4.1.0 active-directory:2.30 analysis-model-api:11.1.0 ant:481.v7b_09e538fcca antisamy-markup-formatter:159.v25b_c67cd35fb_ apache-httpcomponents-client-4-api:4.5.14-150.v7a_b_9d17134a_5 authentication-tokens:1.53.v1c90fd9191a_b_ authorize-project:1.5.1 badge:1.9.1 bootstrap4-api:4.6.0-5 bootstrap5-api:5.2.2-2 bouncycastle-api:2.27 branch-api:2.1071.v1a_188a_562481 build-monitor-plugin:1.14-681.vd6817317a_2b_7 build-timeout:1.30 build-token-root:151.va_e52fe3215fc build-user-vars-plugin:1.9 buildtriggerbadge:251.vdf6ef853f3f5 caffeine-api:2.9.3-65.v6a_47d0f4d1fe checks-api:2.0.0 cloudbees-bitbucket-branch-source:800.va_b_b_9a_a_5035c1 cloudbees-folder:6.815.v0dd5a_cb_40e0e command-launcher:90.v669d7ccb_7c31 commons-httpclient3-api:3.1-3 commons-lang3-api:3.12.0-36.vd97de6465d5b_ commons-text-api:1.10.0-36.vc008c8fcda_7b_ conditional-buildstep:1.4.2 config-file-provider:3.11.1 configurationslicing:430.v966357576543 credentials:1224.vc23ca_a_9a_2cb_0 credentials-binding:523.vd859a_4b_122e6 dark-theme:315.va_22e7d692ea_a dashboard-view:2.472.v9ff2a_e6a_c529 data-tables-api:1.13.3-3 display-url-api:2.3.7 docker-commons:419.v8e3cd84ef49c docker-workflow:563.vd5d2e5c4007f durable-task:504.vb10d1ae5ba2f echarts-api:5.4.0-3 email-ext:2.96 emailext-template:1.5 embeddable-build-status:369.vb_a_68a_575a_b_11 extended-read-permission:3.2 external-monitor-job:203.v683c09d993b_9 favorite:2.4.1 file-parameters:285.v757c5b_67a_c25 font-awesome-api:6.3.0-2 forensics-api:2.1.0 generic-webhook-trigger:1.86.2 git:5.0.0 git-client:4.2.0 git-server:99.va_0826a_b_cdfa_d github:1.37.0 github-api:1.303-417.ve35d9dd78549 github-branch-source:1703.vd5a_2b_29c6cdc gitlab-api:5.1.0-84.v491924123a_f7 gitlab-branch-source:650.va_d1ce6d01959 gitlab-logo:1.1.0 gitlab-plugin:1.7.10 gradle:2.4 groovy:453.vcdb_a_c5c99890 groovy-postbuild:2.5 h2-api:11.1.4.199-12.v9f4244395f7a_ handy-uri-templates-2-api:2.1.8-22.v77d5b_75e6953 htmlpublisher:1.31 instance-identity:142.v04572ca_5b_265 ionicons-api:45.vf54fca_5d2154 jackson2-api:2.14.2-319.v37853346a_229 jakarta-activation-api:2.0.1-3 jakarta-mail-api:2.0.1-3 javadoc:226.v71211feb_e7e9 javax-activation-api:1.2.0-6 javax-mail-api:1.6.2-9 jaxb:2.3.8-1 jdk-tool:63.v62d2fd4b_4793 jenkins-design-language:1.27.3 jersey2-api:2.39.1-1 jira:3.9 jjwt-api:0.11.5-77.v646c772fddb_0 jnr-posix-api:3.1.16-2 jobConfigHistory:1207.vd28a_54732f92 jquery:1.12.4-1 jquery3-api:3.6.4-1 jsch:0.1.55.61.va_e9ee26616e7 jswidgets:1.10 junit:1189.v1b_e593637fa_e junit-realtime-test-reporter:102.v3f020960a_646 ldap:671.v2a_9192a_7419d locale:262.ved03281fa_64f lockable-resources:1141.v7c5f8f31d2ee log-parser:2.3.0 mailer:448.v5b_97805e3767 mapdb-api:1.0.9-28.vf251ce40855d mask-passwords:150.vf80d33113e80 matrix-auth:3.1.6 matrix-project:785.v06b_7f47b_c631 maven-plugin:3.21 metrics:4.2.13-420.vea_2f17932dd6 mina-sshd-api-common:2.9.2-62.v199162f0a_2f8 mina-sshd-api-core:2.9.2-62.v199162f0a_2f8 monitoring:1.92.0 next-executions:1.0.15 okhttp-api:4.10.0-132.v7a_7b_91cef39c pam-auth:1.10 parameterized-trigger:2.45 persistent-parameter:1.3 pipeline-aggregator-view:1.15 pipeline-build-step:488.v8993df156e8d pipeline-github-lib:42.v0739460cda_c4 pipeline-graph-analysis:202.va_d268e64deb_3 pipeline-groovy-lib:629.vb_5627b_ee2104 pipeline-input-step:466.v6d0a_5df34f81 pipeline-maven:1279.v5d711113020f pipeline-milestone-step:111.v449306f708b_7 pipeline-model-api:2.2125.vddb_a_44a_d605e pipeline-model-definition:2.2125.vddb_a_44a_d605e pipeline-model-extensions:2.2125.vddb_a_44a_d605e pipeline-multibranch-defaults:2.1 pipeline-rest-api:2.32 pipeline-stage-step:305.ve96d0205c1c6 pipeline-stage-tags-metadata:2.2125.vddb_a_44a_d605e pipeline-stage-view:2.32 pipeline-utility-steps:2.15.1 plain-credentials:143.v1b_df8b_d3b_e48 plugin-util-api:3.2.0 popper-api:1.16.1-3 popper2-api:2.11.6-2 postgresql-api:42.3.3 prism-api:1.29.0-4 pubsub-light:1.17 purge-build-queue-plugin:88.v23b_97b_f2c7a_d purge-job-history:1.6 resource-disposer:0.22 reverse-proxy-auth-plugin:1.7.4 role-strategy:587.588.v850a_20a_30162 run-condition:1.5 run-condition-extras:0.3 scm-api:631.v9143df5b_e4a_a script-security:1229.v4880b_b_e905a_6 sidebar-link:2.2.1 simple-theme-plugin:146.v0e67db_a_9052e snakeyaml-api:1.33-95.va_b_a_e3e47b_fa_4 soapui-pro-functional-testing:1.7 sse-gateway:1.26 ssh-credentials:305.v8f4381501156 ssh-slaves:2.877.v365f5eb_a_b_eec sshd:3.275.v9e17c10f2571 startup-trigger-plugin:2.9.3 status-view:1.0 structs:324.va_f5d6774f3a_d subversion:2.17.1 theme-manager:1.6 thinBackup:1.17 timestamper:1.24 token-macro:321.vd7cc1f2a_52c8 trilead-api:2.84.v72119de229b_7 variant:59.vf075fe829ccb warnings-ng:10.1.0 workflow-aggregator:596.v8c21c963d92d workflow-api:1208.v0cc7c6e0da_9e workflow-basic-steps:1010.vf7a_b_98e847c1 workflow-cps:3653.v07ea_433c90b_4 workflow-durable-task-step:1241.v1a_63e465f943 workflow-job:1289.vd1c337fd5354 workflow-multibranch:733.v109046189126 workflow-scm-step:408.v7d5b_135a_b_d49 workflow-step-api:639.v6eca_cd8c04a_a_ workflow-support:839.v35e2736cfd5c ws-cleanup:0.45 ```

What Operating System are you using (both controller, and any agents involved in the problem)?

Jenkins 2.399 x64 on Windows. Dashboard view plugin 2.472

Reproduction steps

Install Jenkins 2.399 Install Dashboard view plugin 2.472 Create new view of type Dashboard Insert a Job List View into Dashboard at Bottom. Save, show the view.

Expected Results

Same/similar correct Job List View as in Jenkins 2.397.

Actual Results

Result is a broken display, overly wide (about 3 screens wide), with a scrollbar, no useful content.

Anything else?

Jenkins 2.397 with Dashboard plugin 2.466 is correct. Jenkins 2.399 with Dashboard plugin 2.466 is broken. Jenkins 2.397 with Dashboard plugin 2.472 is correct. Jenkins 2.399 with Dashboard plugin 2.472 is broken.

I guess Jenkins 2.398 or 2.399 changed something in the Job List which Dashboard plugin relies on.

beyerjsb commented 1 year ago

Probably caused by PR #7581 in Jenkins v2.398.

Looks like Jenkins now renders two separate views, and hides one of them based on available screen dimensions. Within dashboard view, it renders both, and also somehow the view for intended small width displays is overly wide and probably only half functional (buttons do nothing).

mrbachmann commented 1 year ago

When using Jenkins 2.417 in combination with Dashboard View 2.495.v07e81500c3f2, The job list looks as follows (after adding it to the top of the Dashboard): Jenkins_v2 417_with_Dashboard_view_plugin_v2 495_withmarkups

Above and righ from the table content is displayed which has not been displayed in Jenkins version 2.397.

The Dashboard version of the list should look like the "All Jobs" list: Jenkins_v2 417_with_Dashboard_view_plugin_v2 495_all_jobs_list

Is this reproducible for others as well?

beyerjsb commented 1 year ago

Is this reproducible for others as well?

This is exactly what this ticket is about. If you've got 30 jobs in the grid, it looks much worse than this (all the icons get added at the end, and the column gets extremely wide).

mrbachmann commented 1 year ago

Thanks for the confirmation.

Yes, the more jobs are contained in the list the worse it gets: Jenkins_v2 417_with_Dashboard_view_plugin_v2 495_withmarkups_5_jobs

beyerjsb commented 1 year ago

Yup. With a long list, the top table becomes extremely long vertically, the icons in the bottom table get added at the end (it doesn't wrap), the column with the icons gets extremely wide, and with that the whole area, which also makes the top table extremely wide.

The top table is what Jenkins now shows as Job list on smaller resolutions, and the lower table (without the icons on the right) is what Jenkins shows as Job list on bigger resolutions. Where the additional icons come from I can't say.

My first guess would be that the target users of the Dashboard view are basically never on small resolution displays, and the lower table should be the one to be displayed inside Dashboards. That's the one which was there before the change.

TobiX commented 1 year ago

I personally don't use that panel and am not motivated to dive into the HTML/CSS/JavaScript/Jelly details of it myself. Pull requests are - of course - welcome!

zanderFortinbras commented 1 year ago

This is a right nuisance we use it extensively and we are suffering from it. Is there an work around / alternative ?

mrbachmann commented 1 year ago

As a workaround the Job grid can be used and the number of columns can be set to 1. As an alternative for the Jenkins Job list Dashboard portlet the displaying of the Standard Jenkins list on top can be used: show_standard_list_on_top

Still: the Jenkins Job list portlet would be the most flexible since it can be placed also at the bottom, in-between and at the left or the right column.

zanderFortinbras commented 1 year ago

We use this view at various levels in our automation. But including a top level view over all tasks. We can filter then on What jobs jailed in last night run. This is very large and the "show standard jenkins list at top of page" really is not fixing our problem.

zanderFortinbras commented 1 year ago

found another way while above is not working. Create a new view list view.

Hilding94 commented 11 months ago

Any updates on this? We have the same problem

cmware43 commented 11 months ago

Seeing this exact issue after upgrading Jenkins from 2.387.1 to 2.414.3. Is there a plan to address this issue? I see it's been open for approximately seven months.

mawinter69 commented 9 months ago

It's a bug in Jenkins core. Core renders 2 representations of the job list and it depends on the screen size which one is shown. For the mobile view it is done with divs, but when it comes to including the build button, there is still a td element injected for the regular wide view which then breaks dashboard view.