diff --git a/scripts/celerity/generate_sprites.php b/scripts/celerity/generate_sprites.php index 47ff59f8e6..3b41bc2da0 100755 --- a/scripts/celerity/generate_sprites.php +++ b/scripts/celerity/generate_sprites.php @@ -203,29 +203,10 @@ $action_template = id(new PhutilSprite()) ->setSourcePosition(0, 0) ->setSourceSize(16, 16); -$action_map = array( - 'file' => 'icon/page_white_text.png', - 'fork' => 'icon/arrow_branch.png', - 'edit' => 'icon/page_white_edit.png', - 'flag-0' => 'icon/flag-0.png', - 'flag-1' => 'icon/flag-1.png', - 'flag-2' => 'icon/flag-2.png', - 'flag-3' => 'icon/flag-3.png', - 'flag-4' => 'icon/flag-4.png', - 'flag-5' => 'icon/flag-5.png', - 'flag-6' => 'icon/flag-6.png', - 'flag-7' => 'icon/flag-7.png', - 'flag-ghost' => 'icon/flag-ghost.png', - 'subscribe-auto' => 'icon/unsubscribe.png', - 'subscribe-add' => 'icon/subscribe.png', - 'subscribe-delete' => 'icon/unsubscribe.png', - 'new' => 'icon/page_white_put.png', - 'world' => 'icon/world.png', - 'delete' => 'icon/page_delete.png', - 'move' => 'icon/page_go.png', - 'preview' => 'icon/page_world.png', - 'unpublish' => 'icon/page_error.png', -); +$action_icons = PhabricatorActionView::getAvailableIcons(); +foreach ($action_icons as $icon) { + $action_map[$icon] = 'icon/'.$icon.'.png'; +} foreach ($action_map as $icon => $source) { $sheet->addSprite( diff --git a/src/applications/uiexample/examples/PhabricatorActionListExample.php b/src/applications/uiexample/examples/PhabricatorActionListExample.php index 824ef935da..6dd65b88e6 100644 --- a/src/applications/uiexample/examples/PhabricatorActionListExample.php +++ b/src/applications/uiexample/examples/PhabricatorActionListExample.php @@ -108,6 +108,16 @@ final class PhabricatorActionListExample extends PhabricatorUIExample { ->setName('Form + Workflow Action') ->setIcon('file')); + foreach (PhabricatorActionView::getAvailableIcons() as $icon) { + $view->addAction( + id(new PhabricatorActionView()) + ->setUser($user) + ->setHref('#') + ->setDisabled(true) + ->setName('Icon "'.$icon.'"') + ->setIcon($icon)); + } + return array( $view, '
', diff --git a/src/view/layout/PhabricatorActionView.php b/src/view/layout/PhabricatorActionView.php index f6b2a0c66b..351434cc6b 100644 --- a/src/view/layout/PhabricatorActionView.php +++ b/src/view/layout/PhabricatorActionView.php @@ -129,5 +129,30 @@ final class PhabricatorActionView extends AphrontView { $icon.$item); } + public static function getAvailableIcons() { + return array( + 'delete', + 'edit', + 'file', + 'flag-0', + 'flag-1', + 'flag-2', + 'flag-3', + 'flag-4', + 'flag-5', + 'flag-6', + 'flag-7', + 'flag-ghost', + 'fork', + 'move', + 'new', + 'preview', + 'subscribe-add', + 'subscribe-auto', + 'subscribe-delete', + 'unpublish', + 'world', + ); + } } diff --git a/webroot/rsrc/css/autosprite.css b/webroot/rsrc/css/autosprite.css index 7b1245dddb..267e535168 100644 --- a/webroot/rsrc/css/autosprite.css +++ b/webroot/rsrc/css/autosprite.css @@ -708,15 +708,15 @@ background-position: 0px -7254px; } -.action-file { +.action-delete { background-position: 0px -7285px; } -.action-fork { +.action-edit { background-position: 0px -7302px; } -.action-edit { +.action-file { background-position: 0px -7319px; } @@ -756,39 +756,39 @@ background-position: 0px -7472px; } -.action-subscribe-auto { +.action-fork { background-position: 0px -7489px; } -.action-subscribe-add { +.action-move { background-position: 0px -7506px; } -.action-subscribe-delete { +.action-new { background-position: 0px -7523px; } -.action-new { +.action-preview { background-position: 0px -7540px; } -.action-world { +.action-subscribe-add { background-position: 0px -7557px; } -.action-delete { +.action-subscribe-auto { background-position: 0px -7574px; } -.action-move { +.action-subscribe-delete { background-position: 0px -7591px; } -.action-preview { +.action-unpublish { background-position: 0px -7608px; } -.action-unpublish { +.action-world { background-position: 0px -7625px; } diff --git a/webroot/rsrc/image/autosprite.png b/webroot/rsrc/image/autosprite.png index 42e7cb7b42..73aa1129b9 100644 Binary files a/webroot/rsrc/image/autosprite.png and b/webroot/rsrc/image/autosprite.png differ