Skip to content

Conversation

@rohityadavcloud
Copy link
Member

@rohityadavcloud rohityadavcloud commented Sep 28, 2024

This addresses that issue that plugins customisation in the UI (https://docs.cloudstack.apache.org/en/4.19.1.1/adminguide/ui.html#basic-ui-c
ustomization) isn't able to use all the ant-design-vue icons.

We already use and support fontawesome components such as for Kubernetes menu etc.
This extends the usage of fontawesome (free) solid icons for custom plugins
section in config.json. The plugin can be defined as array:

  "plugins": [
    {
        "name": "HomeLab",
        "icon": ["fa-solid", "fa-server"],
        "path": "https://dash.yadav.cloud/dash/"
    }
  ],

Here the icons is declared as a json array config, where the first
parameter is the pack/type name ("fa-solid") and the second parameter is
the icons name with the "fa-" prefix.

The solid icon can be searched and used from here:
https://fontawesome.com/search?q=server&o=r&s=solid

This also fixes icon size inconsistency when fa os-logo icons are used versus when resource icons are used. This also changes some of the infocard icons to use better icons from font awesome.

Types of changes

  • Breaking change (fix or feature that would cause existing functionality to change)
  • New feature (non-breaking change which adds functionality)
  • Bug fix (non-breaking change which fixes an issue)
  • Enhancement (improves an existing feature and functionality)
  • Cleanup (Code refactoring and cleanup, that may add test cases)
  • build/CI
  • test (unit or integration test code)

Testing

With the example json snipped defined above, would result in this which uses a font awesome solid icon:
Screenshot 2024-09-28 at 12 38 03 PM

This calls listProjects with details=min in the global header menu.

Signed-off-by: Rohit Yadav <[email protected]>
This enables usage of fontawesome (free) solid icons for custom plugins
section in config.json. The plugin can be defined as array:

```
  "plugins": [
    {
        "name": "HomeLab",
        "icon": ["fa-solid", "fa-server"],
        "path": "https://dash.yadav.cloud/dash/"
    }
  ],
```

Here the icons is declared as a json array config, where the first
parameter is the pack/type name ("fa-solid") and the second parameter is
the icons name with the "fa-" prefix.

The solid icon can be searched and used from here:
https://fontawesome.com/search?q=server&o=r&s=solid

Signed-off-by: Rohit Yadav <[email protected]>
This fixes icon size inconsistency when fa os-logo icons are used versus
when resource icons are used. This also changes some of the infocard
icons to use better icons from font awesome.

Signed-off-by: Rohit Yadav <[email protected]>
@rohityadavcloud
Copy link
Member Author

FYI - this is from Swen (proIO's) email from users ML who found a limitation in plugins/UI icons usage.

@blueorangutan ui

@blueorangutan
Copy link

@rohityadavcloud a Jenkins job has been kicked to build UI QA env. I'll keep you posted as I make progress.

@codecov
Copy link

codecov bot commented Sep 28, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 15.12%. Comparing base (7cfeab1) to head (e662e55).
Report is 7 commits behind head on 4.19.

Additional details and impacted files
@@             Coverage Diff              @@
##               4.19    #9744      +/-   ##
============================================
- Coverage     15.12%   15.12%   -0.01%     
+ Complexity    11255    11253       -2     
============================================
  Files          5407     5407              
  Lines        473799   473799              
  Branches      57767    57767              
============================================
- Hits          71670    71665       -5     
- Misses       394130   394136       +6     
+ Partials       7999     7998       -1     
Flag Coverage Δ
uitests 4.30% <ø> (ø)
unittests 15.84% <ø> (-0.01%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@blueorangutan
Copy link

UI build: ✔️
Live QA URL: https://qa.cloudstack.cloud/simulator/pr/9744 (QA-JID-458)

@rohityadavcloud
Copy link
Member Author

QA'd manually this seems to be working okay: (notice the icons)
Screenshot 2024-09-30 at 1 13 43 PM

@DaanHoogland
Copy link
Contributor

FYI - this is from Swen (proIO's) email from users ML who found a limitation in plugins/UI icons usage.

https://lists.apache.org/thread/0062c2o0dl4vps562bdkpmw0ym8f5yq6

Copy link
Contributor

@DaanHoogland DaanHoogland left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

clgtm (not sure I can judge the long term policy, though)

@DaanHoogland DaanHoogland linked an issue Sep 30, 2024 that may be closed by this pull request
@DaanHoogland
Copy link
Contributor

@JoaoJandre , will you consider this?

@JoaoJandre
Copy link
Contributor

@rohityadavcloud @DaanHoogland If I understood correctly, this PR is improving which fonts can be used when creating new plugins, and not fixing any bugs. If so, does it need to go into 4.20? It seems to me that if it gets merged as soon as 4.20 is out, new plugins can already start using the fonts, so there would be no need to merge it now.

Please correct me if I'm mistaken.

@DaanHoogland
Copy link
Contributor

@rohityadavcloud @DaanHoogland If I understood correctly, this PR is improving which fonts can be used when creating new plugins, and not fixing any bugs. If so, does it need to go into 4.20? It seems to me that if it gets merged as soon as 4.20 is out, new plugins can already start using the fonts, so there would be no need to merge it now.

Please correct me if I'm mistaken.

I think you are right, I understood it as "We cannot add our plugin because of a bug" but let's move this forward then.

@rohityadavcloud
Copy link
Member Author

@JoaoJandre it's considered a UI bug as font-awesome works for normal tabs but not plugin section in the navigation. But it's considered minor as this is the case for the last many releases, it's not a regression.

@github-actions
Copy link

github-actions bot commented Dec 2, 2024

This pull request has merge conflicts. Dear author, please fix the conflicts and sync your branch with the base branch.

@DaanHoogland
Copy link
Contributor

@rohityadavcloud , i resolved a conflict here. Hope it is alright like this by you.

@DaanHoogland
Copy link
Contributor

@blueorangutan ui

@blueorangutan
Copy link

@DaanHoogland a Jenkins job has been kicked to build UI QA env. I'll keep you posted as I make progress.

@blueorangutan
Copy link

UI build: ✔️
Live QA URL: https://qa.cloudstack.cloud/simulator/pr/9744 (QA-JID-493)

Copy link
Member

@vishesh92 vishesh92 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

clgtm. Verified changes in UI for List View and info card.

Copy link
Contributor

@shwstppr shwstppr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Checked different views, looking fine to me

@DaanHoogland DaanHoogland merged commit 4876761 into apache:4.19 Dec 9, 2024
24 of 26 checks passed
@DaanHoogland DaanHoogland deleted the ui-allow-fa-usage branch December 9, 2024 09:03
@rohityadavcloud
Copy link
Member Author

Thanks @DaanHoogland @vishesh92 @shwstppr
cc @sbrueseke

@sbrueseke
Copy link

sbrueseke commented Dec 9, 2024

thx everybody for the effort! :-)

weizhouapache pushed a commit to weizhouapache/cloudstack that referenced this pull request Dec 11, 2024
DaanHoogland added a commit that referenced this pull request Dec 20, 2024
* 4.20:
  VR: apply iptables rules when add/remove static routes (#10064)
  Certificate and VM hostname validation improvements (#10051)
  set ulimit for server according to redhat spec (#10040)
  kvm-storage: provide isVMMigrate information to storage plugins (#10093)
  Allow config drive deletion of migrated VM, on host maintenance (#10045)
  linstor: improve heartbeat check with also asking linstor (#10105)
  server: simplify role change validation (#9173)
  UI: create VPC network offering with conserve mode (#10082)
  server: fix typo removeaccessvpn in VirtualRouterElement (#10086)
  UI: remove duplicated Instance Name in Public IP details page (#10087)
  UI: Fixes in the Usage UI (#10000)
  SAML2: add cookie with HttpOnly too #10013 (#10047)
  ui: Allow font-awesome icon usage and optimise icon size inconsistency (#9744)
dhslove pushed a commit to ablecloud-team/ablestack-cloud that referenced this pull request Dec 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

UI: Missing icons when implementing custom menu points

8 participants