Skip to content

Commit

Permalink
Implement app.alert_name list item action
Browse files Browse the repository at this point in the history
  • Loading branch information
niklasnatter committed Jun 20, 2022
1 parent 28f00bb commit fcb05aa
Show file tree
Hide file tree
Showing 5 changed files with 56 additions and 2 deletions.
4 changes: 4 additions & 0 deletions assets/admin/app.js
Original file line number Diff line number Diff line change
@@ -1 +1,5 @@
// Add project specific javascript code and import of additional bundles here:
import {listItemActionRegistry} from 'sulu-admin-bundle/views';
import AlertNameItemAction from "./listItemActions/AlertNameItemAction";

listItemActionRegistry.add('app.alert_name', AlertNameItemAction);
18 changes: 18 additions & 0 deletions assets/admin/listItemActions/AlertNameItemAction.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import {translate} from 'sulu-admin-bundle/utils';
import {AbstractListItemAction} from 'sulu-admin-bundle/views';

export default class AlertNameItemAction extends AbstractListItemAction {
getItemActionConfig(item) {
const {disabled_ids: disabledIds = []} = this.options;

return {
icon: 'su-bell',
disabled: item ? disabledIds.includes(item['id']) : false,
onClick: item ? () => this.handleClick(item) : undefined,
};
}

handleClick = (item) => {
alert(translate('app.clicked_contact') + ':\n' + item.firstName + ' ' + item.lastName);
};
}
30 changes: 30 additions & 0 deletions src/Admin/AppAdmin.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<?php

declare(strict_types=1);

namespace App\Admin;

use Sulu\Bundle\AdminBundle\Admin\Admin;
use Sulu\Bundle\AdminBundle\Admin\View\ListItemAction;
use Sulu\Bundle\AdminBundle\Admin\View\ListViewBuilderInterface;
use Sulu\Bundle\AdminBundle\Admin\View\ViewCollection;
use Sulu\Bundle\ContactBundle\Admin\ContactAdmin;

class AppAdmin extends Admin
{
public function configureViews(ViewCollection $viewCollection): void
{
if ($viewCollection->has(ContactAdmin::CONTACT_LIST_VIEW)) {
/** @var ListViewBuilderInterface $contactListViewBuilder */
$contactListViewBuilder = $viewCollection->get(ContactAdmin::CONTACT_LIST_VIEW);
$contactListViewBuilder->addItemActions([
new ListItemAction('app.alert_name', ['disabled_ids' => [1]]),
]);
}
}

public static function getPriority(): int
{
return ContactAdmin::getPriority() - 1;
}
}
3 changes: 2 additions & 1 deletion translations/admin.de.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,6 @@
"app.album_selection_label": "{count} {count, plural, =1 {Album} other {Alben}} ausgewählt",
"app.select_albums": "Alben auswählen",
"app.no_album_selected": "Kein Album ausgewählt",
"app.select_album": "Album auswählen"
"app.select_album": "Album auswählen",
"app.clicked_contact": "Ausgewählter Kontakt"
}
3 changes: 2 additions & 1 deletion translations/admin.en.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,6 @@
"app.album_selection_label": "{count} {count, plural, =1 {album} other {albums}} selected",
"app.select_albums": "Select albums",
"app.no_album_selected": "No album selected",
"app.select_album": "Select album"
"app.select_album": "Select album",
"app.clicked_contact": "Clicked Contact"
}

0 comments on commit fcb05aa

Please sign in to comment.