Skip to content

Commit

Permalink
Overview and single page of icons library
Browse files Browse the repository at this point in the history
  • Loading branch information
celdia committed Jun 6, 2024
1 parent 55063a9 commit 6aefdfd
Show file tree
Hide file tree
Showing 8 changed files with 148 additions and 50 deletions.
70 changes: 70 additions & 0 deletions modules/ui_icons_library/src/Controller/IconsetsController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
<?php


namespace Drupal\ui_icons_library\Controller;

use Drupal\Core\Controller\ControllerBase;
use Drupal\Core\Url;

/**
* Class IconDisplayController.
*/
class IconsetsController extends ControllerBase
{

const OVERVIEW_SLICE = 20;

/**
* Display icons.
*
* @return array
* Return render array.
*/
public function overview()
{
$build = [];
$iconsets = \Drupal::service('strategy.manager.iconset')->getIconsets();
foreach ($iconsets as $iconset_id => $label) {
$iconset = \Drupal::service('strategy.manager.iconset')->getInstance($iconset_id);
$icons = $iconset->getIcons();
$icons = array_slice($icons, 0, static::OVERVIEW_SLICE);
$build[] = [
'#type' => 'html_tag',
'#tag' => 'h2',
'#value' => $label,
];
foreach ($icons as $icon_id => $icon) {
$build[] = $iconset->build($icon_id);
}
$build[] = [
'#type' => 'html_tag',
'#tag' => 'p',
0 => [
'#type' => 'link',
'#title' => $this->t("View more"),
'#url' => Url::fromRoute('ui_icons.single', ["iconset_id" => $iconset_id]),
]
];
}
return $build;
}


/**
* Display icons.
*
* @return array
* Return render array.
*/
public function single(string $iconset_id)
{
$build = [];
$iconset = \Drupal::service('strategy.manager.iconset')->getInstance($iconset_id);
$icons = $iconset->getIcons();
foreach ($icons as $icon_id => $icon) {
$build[] = $iconset->build($icon_id);
}
return $build;
}

}
8 changes: 8 additions & 0 deletions modules/ui_icons_library/ui_icons_library.info.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
name: Iconset Library
type: module
description: 'A sous module of UI Icons to display icons library'
core_version_requirement: ^9 || ^10
package: Custom
dependencies:
- iconset:iconset
- ui_icons:ui_icons
24 changes: 24 additions & 0 deletions modules/ui_icons_library/ui_icons_library.routing.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#ui_suite.index:
# path: '/admin/appearance/ui-libraries'
# defaults:
# _controller: '\Drupal\system\Controller\SystemController::systemAdminMenuBlockPage'
# _title: 'UI libraries'
# requirements:
# _permission: 'access content'

ui_icons.overview:
path: '/icons'
defaults:
_controller: '\Drupal\ui_icons_library\Controller\IconsetsController::overview'
_title: 'Iconsets library'
requirements:
_permission: 'access content'

ui_icons.single:
path: '/icons/{iconset_id}'
defaults:
_controller: '\Drupal\ui_icons_library\Controller\IconsetsController::single'
_title: 'Iconset details'
requirements:
_permission: 'access content'

39 changes: 0 additions & 39 deletions src/Controller/IconDisplayController.php

This file was deleted.

Empty file.
1 change: 0 additions & 1 deletion src/Plugin/IconHandler/CustomIconHandler.php

This file was deleted.

31 changes: 25 additions & 6 deletions ui_icons.iconset.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,30 @@ bootstrap_icons:
label: 'Bootstrap Icons'
plugin: 'svg'
assets:
- '/libraries/bootstrap-icons/house.svg'
- '/libraries/bootstrap-icons/people.svg'
remix_icons:
label: 'Remix Icons'
- '/libraries/bootstrap-icons/icons'

dsfr_remixicons:
label: 'DSFR Remix Icons'
plugin: 'svg'
assets:
- '/libraries/remixicon/arrow-left-up-line.svg'
- '/libraries/remixicon/mail-line.svg'
- '/libraries/remixicons/icons'
- '/libraries/remixicons/fonts/remixicon.symbol.svg'
- 'https://cdn.jsdelivr.net/npm/[email protected]/fonts/remixicon.symbol.svg'

tailwind:
label: 'Tailwind'
plugin: 'svg'
assets:
- '/libraries/heroicons/optimized/24/outline'
- '/libraries/heroicons/src/24/solid'

uswsd:
label: 'US Web Design System'
plugin: 'svg'
assets:
- '/libraries/uswds/packages/usa-icon/src/img/usa-icons-bg'
- '/libraries/uswds/packages/usa-icon/src/img/uswds-icons'




25 changes: 21 additions & 4 deletions ui_icons.routing.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,24 @@
ui_icons_display.display:
path: '/admin/config/media/iconset/icon-display'
ui_suite.index:
path: '/admin/appearance/ui-libraries'
defaults:
_controller: '\Drupal\ui_icons\Controller\IconDisplayController::display'
_title: 'Bootstrap Icon Display'
_controller: '\Drupal\system\Controller\SystemController::systemAdminMenuBlockPage'
_title: 'UI libraries'
requirements:
_permission: 'access patterns page+access_ui_styles_library+access_ui_examples_library'

ui_icons.overview:
path: '/icons'
defaults:
_controller: '\Drupal\ui_icons\Controller\IconsetsController::overview'
_title: 'Iconsets library'
requirements:
_permission: 'access content'

ui_icons.single:
path: '/icons/{iconset_id}'
defaults:
_controller: '\Drupal\ui_icons\Controller\IconsetsController::single'
_title: 'Iconset details'
requirements:
_permission: 'access content'

0 comments on commit 6aefdfd

Please sign in to comment.