From dbebfea9cc1cd5ca7b6fb6bfca373ebead695a56 Mon Sep 17 00:00:00 2001 From: Chad Little Date: Thu, 5 Jun 2014 10:37:21 -0700 Subject: [PATCH] FontAwesome RemarkupBar Summary: Replaces the icons with fonts from FontAwesome. Up in the air about the meme icon. Thoughts? Also removed the second fullscreen/normal state. Seems obvious what it does, but assume someone complained previously? Test Plan: Tested all the icon states and made sure they still worked. Test fullscreen and help. {F163485} Reviewers: epriestley Reviewed By: epriestley Subscribers: epriestley, Korvin Differential Revision: https://secure.phabricator.com/D9385 --- resources/celerity/map.php | 101 +++++++++--------- resources/celerity/packages.php | 1 - resources/sprite/manifest/remarkup.json | 91 ---------------- scripts/celerity/generate_sprites.php | 1 - .../celerity/CeleritySpriteGenerator.php | 44 -------- .../control/PhabricatorRemarkupControl.php | 29 +++-- webroot/rsrc/css/core/remarkup.css | 27 ++--- webroot/rsrc/css/sprite-remarkup.css | 83 -------------- webroot/rsrc/image/sprite-remarkup-X2.png | Bin 4847 -> 0 bytes webroot/rsrc/image/sprite-remarkup.png | Bin 2176 -> 0 bytes .../behavior-phabricator-remarkup-assist.js | 36 +++---- 11 files changed, 90 insertions(+), 323 deletions(-) delete mode 100644 resources/sprite/manifest/remarkup.json delete mode 100644 webroot/rsrc/css/sprite-remarkup.css delete mode 100644 webroot/rsrc/image/sprite-remarkup-X2.png delete mode 100644 webroot/rsrc/image/sprite-remarkup.png diff --git a/resources/celerity/map.php b/resources/celerity/map.php index 0275dcbb03..92439af49b 100644 --- a/resources/celerity/map.php +++ b/resources/celerity/map.php @@ -7,8 +7,8 @@ return array( 'names' => array( - 'core.pkg.css' => 'baca3efb', - 'core.pkg.js' => '29e9786d', + 'core.pkg.css' => 'd9c53a92', + 'core.pkg.js' => 'b6689fe1', 'darkconsole.pkg.js' => 'ca8671ce', 'differential.pkg.css' => '4a93db37', 'differential.pkg.js' => 'eca39a2c', @@ -105,7 +105,7 @@ return array( 'rsrc/css/application/tokens/tokens.css' => '3d0f239e', 'rsrc/css/application/uiexample/example.css' => '528b19de', 'rsrc/css/core/core.css' => '40151074', - 'rsrc/css/core/remarkup.css' => '80c3a48c', + 'rsrc/css/core/remarkup.css' => 'b510c359', 'rsrc/css/core/syntax.css' => '3c18c1cb', 'rsrc/css/core/z-index.css' => 'efb673ac', 'rsrc/css/diviner/diviner-shared.css' => '38813222', @@ -157,7 +157,6 @@ return array( 'rsrc/css/sprite-minicons.css' => 'df4f76fe', 'rsrc/css/sprite-payments.css' => 'cc085d44', 'rsrc/css/sprite-projects.css' => '7578fa56', - 'rsrc/css/sprite-remarkup.css' => '5c396a57', 'rsrc/css/sprite-tokens.css' => '1706b943', 'rsrc/externals/font/fontawesome/fontawesome-webfont.eot' => '1cab0752', 'rsrc/externals/font/fontawesome/fontawesome-webfont.ttf' => '2ff84fd2', @@ -324,8 +323,6 @@ return array( 'rsrc/image/sprite-payments.png' => 'd8576309', 'rsrc/image/sprite-projects-X2.png' => '218fdc8b', 'rsrc/image/sprite-projects.png' => '631ff9a7', - 'rsrc/image/sprite-remarkup-X2.png' => '7ee1dc28', - 'rsrc/image/sprite-remarkup.png' => 'b4421f07', 'rsrc/image/sprite-tokens-X2.png' => 'b4776580', 'rsrc/image/sprite-tokens.png' => '25b75533', 'rsrc/image/texture/card-gradient.png' => '815f26e8', @@ -462,7 +459,7 @@ return array( 'rsrc/js/core/behavior-object-selector.js' => 'e6f67523', 'rsrc/js/core/behavior-oncopy.js' => 'c3e218fe', 'rsrc/js/core/behavior-phabricator-nav.js' => 'b5842a5e', - 'rsrc/js/core/behavior-phabricator-remarkup-assist.js' => 'ddee74db', + 'rsrc/js/core/behavior-phabricator-remarkup-assist.js' => 'ba22863c', 'rsrc/js/core/behavior-refresh-csrf.js' => '7814b593', 'rsrc/js/core/behavior-remarkup-preview.js' => 'f7379f45', 'rsrc/js/core/behavior-reorder-applications.js' => 'a8e3795d', @@ -605,7 +602,7 @@ return array( 'javelin-behavior-phabricator-notification-example' => 'c51a6616', 'javelin-behavior-phabricator-object-selector' => 'e6f67523', 'javelin-behavior-phabricator-oncopy' => 'c3e218fe', - 'javelin-behavior-phabricator-remarkup-assist' => 'ddee74db', + 'javelin-behavior-phabricator-remarkup-assist' => 'ba22863c', 'javelin-behavior-phabricator-reveal-content' => '8f24abfc', 'javelin-behavior-phabricator-search-typeahead' => '86549ee3', 'javelin-behavior-phabricator-show-all-transactions' => '7c273581', @@ -718,7 +715,7 @@ return array( 'phabricator-prefab' => '41ed7994', 'phabricator-profile-css' => '33e6f703', 'phabricator-project-tag-css' => '095c9404', - 'phabricator-remarkup-css' => '80c3a48c', + 'phabricator-remarkup-css' => 'b510c359', 'phabricator-search-results-css' => 'f240504c', 'phabricator-shaped-request' => '7cbe244b', 'phabricator-side-menu-view-css' => 'a2ccd7bd', @@ -806,7 +803,6 @@ return array( 'sprite-minicons-css' => 'df4f76fe', 'sprite-payments-css' => 'cc085d44', 'sprite-projects-css' => '7578fa56', - 'sprite-remarkup-css' => '5c396a57', 'sprite-tokens-css' => '1706b943', 'subscribers-list-css' => '5bb30c78', 'syntax-highlighting-css' => '3c18c1cb', @@ -1692,6 +1688,16 @@ return array( 0 => 'javelin-install', 1 => 'javelin-dom', ), + 'ba22863c' => + array( + 0 => 'javelin-behavior', + 1 => 'javelin-stratcom', + 2 => 'javelin-dom', + 3 => 'phabricator-phtize', + 4 => 'phabricator-textareautils', + 5 => 'javelin-workflow', + 6 => 'javelin-vector', + ), 'bc75da74' => array( 0 => 'javelin-behavior', @@ -1905,16 +1911,6 @@ return array( 1 => 'javelin-dom', 2 => 'phabricator-prefab', ), - 'ddee74db' => - array( - 0 => 'javelin-behavior', - 1 => 'javelin-stratcom', - 2 => 'javelin-dom', - 3 => 'phabricator-phtize', - 4 => 'phabricator-textareautils', - 5 => 'javelin-workflow', - 6 => 'javelin-vector', - ), 'e1ff79b1' => array( 0 => 'javelin-behavior', @@ -2132,39 +2128,38 @@ return array( 15 => 'aphront-tooltip-css', 16 => 'phabricator-flag-css', 17 => 'aphront-error-view-css', - 18 => 'sprite-remarkup-css', - 19 => 'sprite-gradient-css', - 20 => 'sprite-menu-css', - 21 => 'sprite-apps-css', - 22 => 'sprite-apps-large-css', - 23 => 'phabricator-main-menu-view', - 24 => 'phabricator-notification-css', - 25 => 'phabricator-notification-menu-css', - 26 => 'lightbox-attachment-css', - 27 => 'phui-header-view-css', - 28 => 'phabricator-filetree-view-css', - 29 => 'phabricator-nav-view-css', - 30 => 'phabricator-side-menu-view-css', - 31 => 'phabricator-crumbs-view-css', - 32 => 'phui-object-item-list-view-css', - 33 => 'global-drag-and-drop-css', - 34 => 'phui-spacing-css', - 35 => 'phui-form-css', - 36 => 'phui-icon-view-css', - 37 => 'phabricator-application-launch-view-css', - 38 => 'phabricator-action-list-view-css', - 39 => 'phui-property-list-view-css', - 40 => 'phui-tag-view-css', - 41 => 'phui-list-view-css', - 42 => 'font-fontawesome', - 43 => 'phui-font-icon-base-css', - 44 => 'sprite-main-header-css', - 45 => 'phui-box-css', - 46 => 'phui-object-box-css', - 47 => 'phui-timeline-view-css', - 48 => 'sprite-tokens-css', - 49 => 'tokens-css', - 50 => 'phui-status-list-view-css', + 18 => 'sprite-gradient-css', + 19 => 'sprite-menu-css', + 20 => 'sprite-apps-css', + 21 => 'sprite-apps-large-css', + 22 => 'phabricator-main-menu-view', + 23 => 'phabricator-notification-css', + 24 => 'phabricator-notification-menu-css', + 25 => 'lightbox-attachment-css', + 26 => 'phui-header-view-css', + 27 => 'phabricator-filetree-view-css', + 28 => 'phabricator-nav-view-css', + 29 => 'phabricator-side-menu-view-css', + 30 => 'phabricator-crumbs-view-css', + 31 => 'phui-object-item-list-view-css', + 32 => 'global-drag-and-drop-css', + 33 => 'phui-spacing-css', + 34 => 'phui-form-css', + 35 => 'phui-icon-view-css', + 36 => 'phabricator-application-launch-view-css', + 37 => 'phabricator-action-list-view-css', + 38 => 'phui-property-list-view-css', + 39 => 'phui-tag-view-css', + 40 => 'phui-list-view-css', + 41 => 'font-fontawesome', + 42 => 'phui-font-icon-base-css', + 43 => 'sprite-main-header-css', + 44 => 'phui-box-css', + 45 => 'phui-object-box-css', + 46 => 'phui-timeline-view-css', + 47 => 'sprite-tokens-css', + 48 => 'tokens-css', + 49 => 'phui-status-list-view-css', ), 'core.pkg.js' => array( diff --git a/resources/celerity/packages.php b/resources/celerity/packages.php index 32c9479f65..bf4b902d64 100644 --- a/resources/celerity/packages.php +++ b/resources/celerity/packages.php @@ -91,7 +91,6 @@ return array( 'phabricator-flag-css', 'aphront-error-view-css', - 'sprite-remarkup-css', 'sprite-gradient-css', 'sprite-menu-css', 'sprite-apps-css', diff --git a/resources/sprite/manifest/remarkup.json b/resources/sprite/manifest/remarkup.json deleted file mode 100644 index b2e98a46c0..0000000000 --- a/resources/sprite/manifest/remarkup.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "version" : 1, - "sprites" : { - "remarkup-assist-none" : { - "name" : "remarkup-assist-none", - "rule" : ".remarkup-assist-", - "hash" : "a7a394dbf21494f2279cc3d528aeb40b" - }, - "remarkup-assist-text_b" : { - "name" : "remarkup-assist-text_b", - "rule" : ".remarkup-assist-b", - "hash" : "ba8a8f8928f2f90e7acd024df8bdee3b" - }, - "remarkup-assist-text_code" : { - "name" : "remarkup-assist-text_code", - "rule" : ".remarkup-assist-code", - "hash" : "b8a03a1004074f0582e77eb4f916b00b" - }, - "remarkup-assist-text_fullscreen" : { - "name" : "remarkup-assist-text_fullscreen", - "rule" : ".remarkup-assist-fullscreen", - "hash" : "63254d9cbe6eadee87d1a28c1d246f9d" - }, - "remarkup-assist-text_fullscreen_off" : { - "name" : "remarkup-assist-text_fullscreen_off", - "rule" : ".remarkup-control-fullscreen-mode .remarkup-assist-fullscreen", - "hash" : "cdcdca0556b6f16b0628684470fc1251" - }, - "remarkup-assist-text_help" : { - "name" : "remarkup-assist-text_help", - "rule" : ".remarkup-assist-help", - "hash" : "106f56bad2932f523cbf1a62ab12b681" - }, - "remarkup-assist-text_i" : { - "name" : "remarkup-assist-text_i", - "rule" : ".remarkup-assist-i", - "hash" : "d9b1a0629d40edd5d32d3e6e21ec1574" - }, - "remarkup-assist-text_image" : { - "name" : "remarkup-assist-text_image", - "rule" : ".remarkup-assist-image", - "hash" : "3e84bf38ccb50c9109dfd78b1711dbb6" - }, - "remarkup-assist-text_larger" : { - "name" : "remarkup-assist-text_larger", - "rule" : ".remarkup-assist-larger", - "hash" : "05909067a2513b9b664b313974643ce3" - }, - "remarkup-assist-text_link" : { - "name" : "remarkup-assist-text_link", - "rule" : ".remarkup-assist-link", - "hash" : "3a6575ca85ddfaa63103d5a8ab80fc09" - }, - "remarkup-assist-text_meme" : { - "name" : "remarkup-assist-text_meme", - "rule" : ".remarkup-assist-meme", - "hash" : "3fa5e69cfc12cd5eba038b48f1efb6c5" - }, - "remarkup-assist-text_ol" : { - "name" : "remarkup-assist-text_ol", - "rule" : ".remarkup-assist-ol", - "hash" : "b1964f62cb2c3cd6ed12bb04522a22c7" - }, - "remarkup-assist-text_table" : { - "name" : "remarkup-assist-text_table", - "rule" : ".remarkup-assist-table", - "hash" : "95fffc501412b323fbdccc98f5bb595c" - }, - "remarkup-assist-text_tag" : { - "name" : "remarkup-assist-text_tag", - "rule" : ".remarkup-assist-tag", - "hash" : "49ed577b1081dd44f60325795468c8ad" - }, - "remarkup-assist-text_tt" : { - "name" : "remarkup-assist-text_tt", - "rule" : ".remarkup-assist-tt", - "hash" : "3c8753b5df23a2a48348cb4ef86b3c02" - }, - "remarkup-assist-text_ul" : { - "name" : "remarkup-assist-text_ul", - "rule" : ".remarkup-assist-ul", - "hash" : "6b1add427c45ed676b9b7f220f16513a" - } - }, - "scales" : [ - 1, - 2 - ], - "header" : "\/**\n * @provides sprite-remarkup-css\n * @generated\n *\/\n\n.sprite-remarkup {\n background-image: url(\/rsrc\/image\/sprite-remarkup.png);\n background-repeat: no-repeat;\n}\n\n@media\nonly screen and (min-device-pixel-ratio: 1.5),\nonly screen and (-webkit-min-device-pixel-ratio: 1.5) {\n .sprite-remarkup {\n background-image: url(\/rsrc\/image\/sprite-remarkup-X2.png);\n background-size: {X}px {Y}px;\n }\n}\n", - "type" : "standard" -} diff --git a/scripts/celerity/generate_sprites.php b/scripts/celerity/generate_sprites.php index b5de26d3b6..63749028d9 100755 --- a/scripts/celerity/generate_sprites.php +++ b/scripts/celerity/generate_sprites.php @@ -27,7 +27,6 @@ $webroot = Filesystem::readablePath($webroot); $generator = new CeleritySpriteGenerator(); $sheets = array( - 'remarkup' => $generator->buildRemarkupSheet(), 'menu' => $generator->buildMenuSheet(), 'apps' => $generator->buildAppsSheet(), 'minicons' => $generator->buildMiniconsSheet(), diff --git a/src/infrastructure/celerity/CeleritySpriteGenerator.php b/src/infrastructure/celerity/CeleritySpriteGenerator.php index 4f82f4b49f..93ade5e33c 100644 --- a/src/infrastructure/celerity/CeleritySpriteGenerator.php +++ b/src/infrastructure/celerity/CeleritySpriteGenerator.php @@ -2,50 +2,6 @@ final class CeleritySpriteGenerator { - public function buildRemarkupSheet() { - - $scales = array( - '1x' => 1, - '2x' => 2, - ); - $sprites = array(); - - $template = id(new PhutilSprite()) - ->setSourceSize(14, 14); - - $remarkup_icons = $this->getDirectoryList('remarkup_1x'); - foreach ($remarkup_icons as $icon) { - $prefix = 'remarkup_'; - - // Strip 'text_' from these file names. - $class_name = substr($icon, 5); - - if ($class_name == 'fullscreen_off') { - $tcss = '.remarkup-control-fullscreen-mode .remarkup-assist-fullscreen'; - } else { - $tcss = '.remarkup-assist-'.$class_name; - } - - $sprite = id(clone $template) - ->setName('remarkup-assist-'.$icon) - ->setTargetCSS($tcss); - - foreach ($scales as $scale_key => $scale) { - $path = $this->getPath($prefix.$scale_key.'/'.$icon.'.png'); - $sprite->setSourceFile($path, $scale); - } - $sprites[] = $sprite; - } - - $sheet = $this->buildSheet('remarkup', true); - $sheet->setScales($scales); - foreach ($sprites as $sprite) { - $sheet->addSprite($sprite); - } - - return $sheet; - } - public function buildMiniconsSheet() { $icons = $this->getDirectoryList('minicons_white_1x'); diff --git a/src/view/form/control/PhabricatorRemarkupControl.php b/src/view/form/control/PhabricatorRemarkupControl.php index 35e49d80e7..ff550299f0 100644 --- a/src/view/form/control/PhabricatorRemarkupControl.php +++ b/src/view/form/control/PhabricatorRemarkupControl.php @@ -43,34 +43,34 @@ final class PhabricatorRemarkupControl extends AphrontFormTextAreaControl { Javelin::initBehavior('phabricator-tooltips', array()); $actions = array( - 'b' => array( + 'fa-bold' => array( 'tip' => pht('Bold'), ), - 'i' => array( + 'fa-italic' => array( 'tip' => pht('Italics'), ), - 'tt' => array( + 'fa-text-width' => array( 'tip' => pht('Monospaced'), ), - 'link' => array( + 'fa-link' => array( 'tip' => pht('Link'), ), array( 'spacer' => true, ), - 'ul' => array( + 'fa-list-ul' => array( 'tip' => pht('Bulleted List'), ), - 'ol' => array( + 'fa-list-ol' => array( 'tip' => pht('Numbered List'), ), - 'code' => array( + 'fa-code' => array( 'tip' => pht('Code Block'), ), - 'table' => array( + 'fa-table' => array( 'tip' => pht('Table'), ), - 'image' => array( + 'fa-cloud-upload' => array( 'tip' => pht('Upload File'), ), ); @@ -79,12 +79,12 @@ final class PhabricatorRemarkupControl extends AphrontFormTextAreaControl { $actions[] = array( 'spacer' => true, ); - $actions['meme'] = array( + $actions['fa-meh-o'] = array( 'tip' => pht('Meme'), ); } - $actions['help'] = array( + $actions['fa-life-bouy'] = array( 'tip' => pht('Help'), 'align' => 'right', 'href' => PhabricatorEnv::getDoclink('Remarkup Reference'), @@ -95,7 +95,7 @@ final class PhabricatorRemarkupControl extends AphrontFormTextAreaControl { 'align' => 'right', ); - $actions['fullscreen'] = array( + $actions['fa-arrows-alt'] = array( 'tip' => pht('Fullscreen Mode'), 'align' => 'right', ); @@ -146,9 +146,6 @@ final class PhabricatorRemarkupControl extends AphrontFormTextAreaControl { $tip); } - require_celerity_resource('sprite-remarkup-css'); - - $buttons[] = javelin_tag( 'a', array( @@ -164,7 +161,7 @@ final class PhabricatorRemarkupControl extends AphrontFormTextAreaControl { 'div', array( 'class' => - 'remarkup-assist sprite-remarkup remarkup-assist-'.$action, + 'remarkup-assist phui-icon-view phui-font-fa bluegrey '.$action, ), $content)); } diff --git a/webroot/rsrc/css/core/remarkup.css b/webroot/rsrc/css/core/remarkup.css index 7a4c439ea8..53878931bf 100644 --- a/webroot/rsrc/css/core/remarkup.css +++ b/webroot/rsrc/css/core/remarkup.css @@ -314,7 +314,7 @@ border-left-color: {$blueborder}; border-right-color: {$blueborder}; border-bottom-color: {$blueborder}; - border-top-color: {$lightblueborder}; + border-top-color: {$thinblueborder}; border-radius: 0; /* Prevent Safari and Chrome users from dragging the textarea any wider, @@ -327,9 +327,7 @@ } .remarkup-assist-bar { - height: 27px; - padding: 0 2px; - + height: 26px; border-width: 1px 1px 0; border-style: solid; border-top-color: {$blueborder}; @@ -342,24 +340,20 @@ .remarkup-assist-button { display: block; - padding: 3px; - margin: 2px 1px; + padding: 5px; float: left; - - border: 1px solid transparent; - border-radius: 2px; } .remarkup-assist-button:hover { - background: #f7f7f7; - border-color: #c6c6c6; - box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.10); + background-color: rgba(100,100,100,.15); +} + +.remarkup-assist-button:hover .phui-icon-view.phui-font-fa { + color: {$darkbluetext}; } .remarkup-assist-button:active { outline: none; - background: #f3f3f3; - box-shadow: inset 1px 1px 1px rgba(0, 0, 0, 0.10); } .remarkup-assist-button:focus { @@ -392,10 +386,11 @@ } .remarkup-assist { - display: block; width: 14px; height: 14px; overflow: hidden; + text-align: center; + vertical-align: middle; } .remarkup-assist-right { @@ -422,7 +417,7 @@ .remarkup-control-fullscreen-mode textarea.remarkup-assist-textarea { position: absolute; - top: 26px; + top: 27px; left: 0; right: 0; bottom: 0; diff --git a/webroot/rsrc/css/sprite-remarkup.css b/webroot/rsrc/css/sprite-remarkup.css deleted file mode 100644 index 00f6a01354..0000000000 --- a/webroot/rsrc/css/sprite-remarkup.css +++ /dev/null @@ -1,83 +0,0 @@ -/** - * @provides sprite-remarkup-css - * @generated - */ - -.sprite-remarkup { - background-image: url(/rsrc/image/sprite-remarkup.png); - background-repeat: no-repeat; -} - -@media -only screen and (min-device-pixel-ratio: 1.5), -only screen and (-webkit-min-device-pixel-ratio: 1.5) { - .sprite-remarkup { - background-image: url(/rsrc/image/sprite-remarkup-X2.png); - background-size: 60px 60px; - } -} - - -.remarkup-assist- { - background-position: 0px 0px; -} - -.remarkup-assist-b { - background-position: -15px 0px; -} - -.remarkup-assist-code { - background-position: -30px 0px; -} - -.remarkup-assist-fullscreen { - background-position: -45px 0px; -} - -.remarkup-control-fullscreen-mode .remarkup-assist-fullscreen { - background-position: 0px -15px; -} - -.remarkup-assist-help { - background-position: -15px -15px; -} - -.remarkup-assist-i { - background-position: -30px -15px; -} - -.remarkup-assist-image { - background-position: -45px -15px; -} - -.remarkup-assist-larger { - background-position: 0px -30px; -} - -.remarkup-assist-link { - background-position: -15px -30px; -} - -.remarkup-assist-meme { - background-position: -30px -30px; -} - -.remarkup-assist-ol { - background-position: -45px -30px; -} - -.remarkup-assist-table { - background-position: 0px -45px; -} - -.remarkup-assist-tag { - background-position: -15px -45px; -} - -.remarkup-assist-tt { - background-position: -30px -45px; -} - -.remarkup-assist-ul { - background-position: -45px -45px; -} diff --git a/webroot/rsrc/image/sprite-remarkup-X2.png b/webroot/rsrc/image/sprite-remarkup-X2.png deleted file mode 100644 index 5c7065589b550af41ad45ccfe465d12ec933136d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4847 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 diff --git a/webroot/rsrc/js/core/behavior-phabricator-remarkup-assist.js b/webroot/rsrc/js/core/behavior-phabricator-remarkup-assist.js index 5341e2f5da..600568e5cf 100644 --- a/webroot/rsrc/js/core/behavior-phabricator-remarkup-assist.js +++ b/webroot/rsrc/js/core/behavior-phabricator-remarkup-assist.js @@ -22,7 +22,7 @@ JX.behavior('phabricator-remarkup-assist', function(config) { // First, disable any active mode. if (edit_root) { - if (edit_mode == 'fullscreen') { + if (edit_mode == 'fa-arrows-alt') { JX.DOM.alterClass(edit_root, 'remarkup-control-fullscreen-mode', false); JX.DOM.alterClass(document.body, 'remarkup-fullscreen-mode', false); } @@ -33,7 +33,7 @@ JX.behavior('phabricator-remarkup-assist', function(config) { edit_mode = mode; // Now, apply the new mode. - if (mode == 'fullscreen') { + if (mode == 'fa-arrows-alt') { JX.DOM.alterClass(edit_root, 'remarkup-control-fullscreen-mode', true); JX.DOM.alterClass(document.body, 'remarkup-fullscreen-mode', true); resizearea(); @@ -46,7 +46,7 @@ JX.behavior('phabricator-remarkup-assist', function(config) { if (!edit_root) { return; } - if (edit_mode != 'fullscreen') { + if (edit_mode != 'fa-arrows-alt') { return; } @@ -71,7 +71,7 @@ JX.behavior('phabricator-remarkup-assist', function(config) { return; } - if (edit_mode != 'fullscreen') { + if (edit_mode != 'fa-arrows-alt') { return; } @@ -101,13 +101,13 @@ JX.behavior('phabricator-remarkup-assist', function(config) { var r = JX.TextAreaUtils.getSelectionRange(area); switch (action) { - case 'b': + case 'fa-bold': update(area, '**', sel || pht('bold text'), '**'); break; - case 'i': + case 'fa-italic': update(area, '//', sel || pht('italic text'), '//'); break; - case 'link': + case 'fa-link': var name = pht('name'); if (/^https?:/i.test(sel)) { update(area, '[[ ' + sel + ' | ', name, ' ]]'); @@ -115,12 +115,12 @@ JX.behavior('phabricator-remarkup-assist', function(config) { update(area, '[[ ', pht('URL'), ' | ' + (sel || name) + ' ]]'); } break; - case 'tt': + case 'fa-text-width': update(area, '`', sel || pht('monospaced text'), '`'); break; - case 'ul': - case 'ol': - var ch = (action == 'ol') ? ' # ' : ' - '; + case 'fa-list-ul': + case 'fa-list-ol': + var ch = (action == 'fa-list-ol') ? ' # ' : ' - '; if (sel) { sel = sel.split("\n"); } else { @@ -129,16 +129,16 @@ JX.behavior('phabricator-remarkup-assist', function(config) { sel = sel.join("\n" + ch); update(area, ((r.start === 0) ? "" : "\n\n") + ch, sel, "\n\n"); break; - case 'code': + case 'fa-code': sel = sel || "foreach ($list as $item) {\n work_miracles($item);\n}"; var prefix = (r.start === 0) ? "" : "\n"; update(area, prefix + "```\n", sel, "\n```"); break; - case 'table': + case 'fa-table': var prefix = (r.start === 0 ? '' : '\n\n'); update(area, prefix + '| ', sel || pht('data'), ' |'); break; - case 'meme': + case 'fa-meh-o': new JX.Workflow('/macro/meme/create/') .setHandler(function(response) { update( @@ -149,14 +149,14 @@ JX.behavior('phabricator-remarkup-assist', function(config) { }) .start(); break; - case 'image': + case 'fa-cloud-upload': new JX.Workflow('/file/uploaddialog/').start(); break; - case 'fullscreen': - if (edit_mode == 'fullscreen') { + case 'fa-arrows-alt': + if (edit_mode == 'fa-arrows-alt') { set_edit_mode(root, 'normal'); } else { - set_edit_mode(root, 'fullscreen'); + set_edit_mode(root, 'fa-arrows-alt'); } break; }