jenkinsci / dashboard-view-plugin

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

The dashboard view now only supports one Iframe or Image portlet in each column #366

Closed ZMI-JohnSchmitz closed 2 months ago

ZMI-JohnSchmitz commented 3 months ago

Jenkins and plugins versions report

Environment Jenkins: 2.452.2 OS: Windows Server 2016 - 10.0 Java: 21.0.1 - Oracle Corporation (OpenJDK 64-Bit Server VM) --- JiraTestResultReporter:213.vccc8cf83e157 analysis-model-api:12.3.3 ansicolor:1.0.4 ant:497.v94e7d9fffa_b_9 antisamy-markup-formatter:162.v0e6ec0fcfcf6 apache-httpcomponents-client-4-api:4.5.14-208.v438351942757 apache-httpcomponents-client-5-api:5.3.1-110.v77252fb_d4da_5 asm-api:9.7-33.v4d23ef79fcc8 atlassian-jira-software-cloud:2.0.15 audit-trail:361.v82cde86c784e authentication-tokens:1.119.v50285141b_7e1 aws-credentials:231.v08a_59f17d742 aws-java-sdk:1.12.753-463.v071a_97315959 aws-java-sdk-api-gateway:1.12.753-463.v071a_97315959 aws-java-sdk-autoscaling:1.12.753-463.v071a_97315959 aws-java-sdk-cloudformation:1.12.753-463.v071a_97315959 aws-java-sdk-cloudfront:1.12.753-463.v071a_97315959 aws-java-sdk-codebuild:1.12.753-463.v071a_97315959 aws-java-sdk-codedeploy:1.12.753-463.v071a_97315959 aws-java-sdk-ec2:1.12.753-463.v071a_97315959 aws-java-sdk-ecr:1.12.753-463.v071a_97315959 aws-java-sdk-ecs:1.12.753-463.v071a_97315959 aws-java-sdk-efs:1.12.753-463.v071a_97315959 aws-java-sdk-elasticbeanstalk:1.12.753-463.v071a_97315959 aws-java-sdk-elasticloadbalancingv2:1.12.753-463.v071a_97315959 aws-java-sdk-iam:1.12.753-463.v071a_97315959 aws-java-sdk-kinesis:1.12.753-463.v071a_97315959 aws-java-sdk-lambda:1.12.753-463.v071a_97315959 aws-java-sdk-logs:1.12.753-463.v071a_97315959 aws-java-sdk-minimal:1.12.753-463.v071a_97315959 aws-java-sdk-organizations:1.12.753-463.v071a_97315959 aws-java-sdk-secretsmanager:1.12.753-463.v071a_97315959 aws-java-sdk-sns:1.12.753-463.v071a_97315959 aws-java-sdk-sqs:1.12.753-463.v071a_97315959 aws-java-sdk-ssm:1.12.753-463.v071a_97315959 azure-ad:484.v5fd019a_39b_18 azure-sdk:174.va_89c1df897d2 badge:1.13 blueocean-autofavorite:1.2.5 blueocean-bitbucket-pipeline:1.27.13 blueocean-commons:1.27.13 blueocean-config:1.27.13 blueocean-core-js:1.27.13 blueocean-dashboard:1.27.13 blueocean-display-url:2.4.3 blueocean-events:1.27.13 blueocean-git-pipeline:1.27.13 blueocean-github-pipeline:1.27.13 blueocean-i18n:1.27.13 blueocean-jira:1.27.13 blueocean-jwt:1.27.13 blueocean-personalization:1.27.13 blueocean-pipeline-api-impl:1.27.13 blueocean-pipeline-editor:1.27.13 blueocean-pipeline-scm-api:1.27.13 blueocean-rest:1.27.13 blueocean-rest-impl:1.27.13 blueocean-web:1.27.13 bootstrap5-api:5.3.3-1 bouncycastle-api:2.30.1.78.1-248.ve27176eb_46cb_ branch-api:2.1169.va_f810c56e895 build-blocker-plugin:166.vc82fc20b_a_ed6 build-environment:1.7 build-name-setter:2.4.2 build-timeout:1.33 build-timestamp:1.0.3 build-user-vars-plugin:166.v52976843b_435 build-with-parameters:76.v9382db_f78962 built-on-column:1.4 caffeine-api:3.1.8-133.v17b_1ff2e0599 checks-api:2.2.0 cloudbees-bitbucket-branch-source:887.va_d359b_3d2d8d cloudbees-disk-usage-simple:203.v3f46a_7462b_1a_ cloudbees-folder:6.928.v7c780211d66e cmakebuilder:4.1.1 command-launcher:107.v773860566e2e commons-compress-api:1.26.1-2 commons-lang3-api:3.14.0-76.vda_5591261cfe commons-text-api:1.12.0-119.v73ef73f2345d conditional-buildstep:1.4.3 config-file-provider:973.vb_a_80ecb_9a_4d0 copyartifact:746.vd2a_674fb_4f6f credentials:1361.v56f5ca_35d21c credentials-binding:681.vf91669a_32e45 cucumber-reports:5.8.1 cucumber-trends-report:1.3 dark-theme:439.vdef09f81f85e dashboard-view:2.508.va_74654f026d1 data-tables-api:2.0.8-1 declarative-pipeline-migration-assistant-api:1.6.4 display-console-output:1.0.5 display-url-api:2.204.vf6fddd8a_8b_e9 docker-commons:439.va_3cb_0a_6a_fb_29 downstream-buildview:69.v16da_b_2c36f6c dtkit-api:3.0.2 durable-task:555.v6802fe0f0b_82 echarts-api:5.5.0-1 eddsa-api:0.3.0-4.v84c6f0f4969e email-ext:1814.v404722f34263 emailext-template:1.5 embeddable-build-status:487.va_0ef04c898a_2 extended-read-permission:53.v6499940139e5 extensible-choice-parameter:1.8.1 external-monitor-job:215.v2e88e894db_f8 external-workspace-manager:1.3.1 favorite:2.218.vd60382506538 file-operations:214.v2e7dc7f25757 flexible-publish:0.16.1 font-awesome-api:6.5.2-1 forensics-api:2.4.0 git:5.2.2 git-client:5.0.0 git-parameter:0.9.19 git-server:126.v0d945d8d2b_39 github:1.39.0 github-api:1.318-461.v7a_c09c9fa_d63 github-branch-source:1789.v5b_0c0cea_18c3 github-oauth:597.ve0c3480fcb_d0 github-scm-trait-commit-skip:0.4.0 groovy:457.v99900cb_85593 groovy-postbuild:228.vcdb_cf7265066 gson-api:2.11.0-41.v019fcf6125dc handy-uri-templates-2-api:2.1.8-30.v7e777411b_148 htmlpublisher:1.35 hudson-wsclean-plugin:1.0.8 instance-identity:185.v303dc7c645f9 ionicons-api:74.v93d5eb_813d5f jackson2-api:2.17.0-379.v02de8ec9f64c jakarta-activation-api:2.1.3-1 jakarta-mail-api:2.1.3-1 javadoc:243.vb_b_503b_b_45537 javax-activation-api:1.2.0-7 javax-mail-api:1.6.2-10 jaxb:2.3.9-1 jdk-tool:73.vddf737284550 jenkins-design-language:1.27.13 jersey2-api:2.42-147.va_28a_44603b_d5 jira:3.13 jjwt-api:0.11.5-112.ve82dfb_224b_a_d jnr-posix-api:3.1.19-2 job-restrictions:0.8 jobConfigHistory:1229.v3039470161a_d joda-time-api:2.12.7-29.v5a_b_e3a_82269a_ join:1.21 jquery:1.12.4-1 jquery3-api:3.7.1-2 jsch:0.2.16-86.v42e010d9484b_ json-api:20240303-41.v94e11e6de726 json-path-api:2.9.0-58.v62e3e85b_a_655 junit:1265.v65b_14fa_f12f0 junit-attachments:205.vc0677977deb_0 label-verifier:105.vf9d080687b_92 ldap:725.v3cb_b_711b_1a_ef leastload:3.0.0 lockable-resources:1255.vf48745da_35d0 mail-watcher-plugin:1.19 mailer:472.vf7c289a_4b_420 mapdb-api:1.0.9-40.v58107308b_7a_7 matrix-auth:3.2.2 matrix-combinations-parameter:1.3.3 matrix-project:832.va_66e270d2946 maven-plugin:3.23 mercurial:1260.vdfb_723cdcc81 metrics:4.2.21-451.vd51df8df52ec mina-sshd-api-common:2.13.1-117.v2f1a_b_66ff91d mina-sshd-api-core:2.13.1-117.v2f1a_b_66ff91d modernstatus:1.3 monitoring:1.99.0 msbuild:1.33 okhttp-api:4.11.0-172.vda_da_1feeb_c6e pam-auth:1.11 parameterized-trigger:806.vf6fff3e28c3e pipeline-aws:1.45 pipeline-build-step:540.vb_e8849e1a_b_d8 pipeline-graph-analysis:216.vfd8b_ece330ca_ pipeline-graph-view:304.va_f2a_16b_e4964 pipeline-groovy-lib:727.ve832a_9244dfa_ pipeline-input-step:495.ve9c153f6067b_ pipeline-milestone-step:119.vdfdc43fc3b_9a_ pipeline-model-api:2.2203.v89fa_170c2b_f5 pipeline-model-definition:2.2203.v89fa_170c2b_f5 pipeline-model-extensions:2.2203.v89fa_170c2b_f5 pipeline-rest-api:2.34 pipeline-stage-step:312.v8cd10304c27a_ pipeline-stage-tags-metadata:2.2203.v89fa_170c2b_f5 pipeline-stage-view:2.34 pipeline-utility-steps:2.17.0 plain-credentials:183.va_de8f1dd5a_2b_ plugin-usage-plugin:4.5 plugin-util-api:4.1.0 postbuildscript:3.2.0-550.v88192b_d3e922 prism-api:1.29.0-15 pubsub-light:1.18 rebuild:332.va_1ee476d8f6d resource-disposer:0.23 run-condition:1.7 s3:466.vf5b_3db_8e3eb_2 scm-api:690.vfc8b_54395023 script-security:1341.va_2819b_414686 slack:722.vd07f1ea_7ff40 snakeyaml-api:2.2-111.vc6598e30cc65 sse-gateway:1.27 ssh-agent:367.vf9076cd4ee21 ssh-credentials:337.v395d2403ccd4 ssh-slaves:2.973.v0fa_8c0dea_f9f sshd:3.330.vc866a_8389b_58 structs:338.v848422169819 test-results-aggregator:2.2 test-results-analyzer:0.4.1 theme-manager:262.vc57ee4a_eda_5d thinBackup:2.1.1 throttle-concurrents:2.14 timestamper:1.27 token-macro:400.v35420b_922dcb_ trilead-api:2.147.vb_73cc728a_32e variant:60.v7290fc0eb_b_cd warnings-ng:11.3.0 workflow-aggregator:600.vb_57cdd26fdd7 workflow-api:1316.v33eb_726c50b_a_ workflow-basic-steps:1058.vcb_fc1e3a_21a_9 workflow-cps:3903.v48a_8836749e9 workflow-durable-task-step:1360.v82d13453da_a_f workflow-job:1400.v7fd111b_ec82f workflow-multibranch:783.787.v50539468395f workflow-scm-step:427.v4ca_6512e7df1 workflow-step-api:678.v3ee58b_469476 workflow-support:907.v6713a_ed8a_573 ws-cleanup:0.46 xunit:3.1.4 zentimestamp:4.2

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

Windows 10, but that's not relevant.

Reproduction steps

  1. Create or edit a Dashboard View
  2. Scroll down to the Portlets in the left column (or right)
  3. Click Add Dashboard Portlet to left column and select an Image portlet
  4. Set it up (or don't)
  5. Click Add Dashboard Portlet to left column (or right, whichever you used before) Note: This also applies to Iframe portlets

Expected Results

The Image item is enabled, allowing you to add another image to the page

Actual Results

The Image item is disabled which limits Image or Iframe portlets to one per column

Anything else?

We were trying to build a dashboard view that was needs to have 8 trend charts on it. We have another dashboard that was last edited quite a while ago, which has 7 Iframe portlets in each column. We obviously had the ability to add more than one Iframe portlet in each column, but now in developing the new dashboard, the Iframe choice is disabled after we've added one. We can now add an Image, which we hadn't used before, but we cannot add a second Iframe or a second Image. Note: Skimming the release notes, I do not see any reference to adding this limitation, but maybe I missed it. The view is useless to us if there can only be 2 images or Iframes total in each view.

Are you interested in contributing a fix?

Don't have the chops for it.

ZMI-JohnSchmitz commented 2 months ago

@mawinter69 is it possible that your UI renovation imposed this limitation?

ZMI-JohnSchmitz commented 2 months ago

I edited the description because the other issue I'd mentioned was not related and was easily fixed. We do have another page that works fine with 7 Iframe portlets in each column. Let me know if there's a workaround, like manually editing a configuration file somewhere to manually duplicate the Image or Iframe portlet to put more in each column because once they are there, you can edit them just fine.

mawinter69 commented 2 months ago

yes the UI renovation is the cause, should be easy to fix (wondering why I put this in at all, maybe because for many portlets it doesn't make sense to have them more than once). Views do not have dedicated config files so they are in the global config.xml or in a folders config.xml. There you could add the additional portlets manually and reload the config afterwards