@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Update form styles, implement in many places

Summary:
This creates a common form look and feel across the site. I spent a bit of time working out a number of kinks in our various renderings. Some things:

- Font Styles are correctly applied for form elements now.
- Everything lines up!
- Selects are larger, easier to read, interact.
- Inputs have been squared.
- Consistant CSS applied glow (try it!)
- Improved Mobile Responsiveness
- CSS applied to all form elements, not just Aphront
- Many other minor tweaks.

I tried to hit as many high profile forms as possible in an effort to increase consistency. Stopped for now and will follow up after this lands. I know Evan is not a super fan of the glow, but after working with it for a week, it's way cleaner and responsive than the OS controls. Give it a try.

Test Plan: Tested many applications, forms, mobile and tablet.

Reviewers: epriestley, btrahan

Reviewed By: epriestley

CC: aran, Korvin

Differential Revision: https://secure.phabricator.com/D5860

+414 -287
+72 -63
src/__celerity_resource_map__.php
··· 786 786 ), 787 787 'aphront-form-view-css' => 788 788 array( 789 - 'uri' => '/res/ed8c70fa/rsrc/css/aphront/form-view.css', 789 + 'uri' => '/res/d82ea207/rsrc/css/aphront/form-view.css', 790 790 'type' => 'css', 791 791 'requires' => 792 792 array( ··· 858 858 ), 859 859 'aphront-tokenizer-control-css' => 860 860 array( 861 - 'uri' => '/res/6e14867e/rsrc/css/aphront/tokenizer.css', 861 + 'uri' => '/res/db2c0f0e/rsrc/css/aphront/tokenizer.css', 862 862 'type' => 'css', 863 863 'requires' => 864 864 array( ··· 895 895 ), 896 896 'config-options-css' => 897 897 array( 898 - 'uri' => '/res/01892229/rsrc/css/application/config/config-options.css', 898 + 'uri' => '/res/be77d5a6/rsrc/css/application/config/config-options.css', 899 899 'type' => 'css', 900 900 'requires' => 901 901 array( ··· 1099 1099 ), 1100 1100 'herald-rule-editor' => 1101 1101 array( 1102 - 'uri' => '/res/f35d7e23/rsrc/js/application/herald/HeraldRuleEditor.js', 1102 + 'uri' => '/res/f8ee0e9c/rsrc/js/application/herald/HeraldRuleEditor.js', 1103 1103 'type' => 'js', 1104 1104 'requires' => 1105 1105 array( ··· 2846 2846 ), 2847 2847 'owners-path-editor-css' => 2848 2848 array( 2849 - 'uri' => '/res/4fcaabf6/rsrc/css/application/owners/owners-path-editor.css', 2849 + 'uri' => '/res/1b9b5456/rsrc/css/application/owners/owners-path-editor.css', 2850 2850 'type' => 'css', 2851 2851 'requires' => 2852 2852 array( ··· 3058 3058 ), 3059 3059 'phabricator-form-view-css' => 3060 3060 array( 3061 - 'uri' => '/res/676b1ad2/rsrc/css/layout/phabricator-form-view.css', 3061 + 'uri' => '/res/ba05f8ba/rsrc/css/layout/phabricator-form-view.css', 3062 3062 'type' => 'css', 3063 3063 'requires' => 3064 3064 array( ··· 3099 3099 ), 3100 3100 'phabricator-jump-nav' => 3101 3101 array( 3102 - 'uri' => '/res/745c0e89/rsrc/css/application/directory/phabricator-jump-nav.css', 3102 + 'uri' => '/res/37ab43b8/rsrc/css/application/directory/phabricator-jump-nav.css', 3103 3103 'type' => 'css', 3104 3104 'requires' => 3105 3105 array( ··· 3134 3134 ), 3135 3135 'phabricator-main-menu-view' => 3136 3136 array( 3137 - 'uri' => '/res/63316e1a/rsrc/css/application/base/main-menu-view.css', 3137 + 'uri' => '/res/f4cfb781/rsrc/css/application/base/main-menu-view.css', 3138 3138 'type' => 'css', 3139 3139 'requires' => 3140 3140 array( ··· 3213 3213 ), 3214 3214 'phabricator-object-selector-css' => 3215 3215 array( 3216 - 'uri' => '/res/7eb4c705/rsrc/css/application/objectselector/object-selector.css', 3216 + 'uri' => '/res/502f1bb9/rsrc/css/application/objectselector/object-selector.css', 3217 3217 'type' => 'css', 3218 3218 'requires' => 3219 3219 array( ··· 3297 3297 ), 3298 3298 'phabricator-remarkup-css' => 3299 3299 array( 3300 - 'uri' => '/res/f9bbca2f/rsrc/css/core/remarkup.css', 3300 + 'uri' => '/res/07cab525/rsrc/css/core/remarkup.css', 3301 3301 'type' => 'css', 3302 3302 'requires' => 3303 3303 array( ··· 3684 3684 ), 3685 3685 'disk' => '/rsrc/css/phui/phui-feed-story.css', 3686 3686 ), 3687 + 'phui-form-css' => 3688 + array( 3689 + 'uri' => '/res/e29e84fb/rsrc/css/phui/phui-form.css', 3690 + 'type' => 'css', 3691 + 'requires' => 3692 + array( 3693 + ), 3694 + 'disk' => '/rsrc/css/phui/phui-form.css', 3695 + ), 3687 3696 'phui-icon-view-css' => 3688 3697 array( 3689 3698 'uri' => '/res/2aa71cc6/rsrc/css/phui/phui-icon.css', ··· 4002 4011 ), array( 4003 4012 'packages' => 4004 4013 array( 4005 - '25d66007' => 4014 + '56e0b740' => 4006 4015 array( 4007 4016 'name' => 'core.pkg.css', 4008 4017 'symbols' => ··· 4044 4053 34 => 'phabricator-object-item-list-view-css', 4045 4054 35 => 'global-drag-and-drop-css', 4046 4055 ), 4047 - 'uri' => '/res/pkg/25d66007/core.pkg.css', 4056 + 'uri' => '/res/pkg/56e0b740/core.pkg.css', 4048 4057 'type' => 'css', 4049 4058 ), 4050 4059 '26980a1c' => ··· 4102 4111 'uri' => '/res/pkg/4ccfeb47/darkconsole.pkg.js', 4103 4112 'type' => 'js', 4104 4113 ), 4105 - '8aaacd1b' => 4114 + '19d2a41f' => 4106 4115 array( 4107 4116 'name' => 'differential.pkg.css', 4108 4117 'symbols' => ··· 4121 4130 11 => 'differential-local-commits-view-css', 4122 4131 12 => 'inline-comment-summary-css', 4123 4132 ), 4124 - 'uri' => '/res/pkg/8aaacd1b/differential.pkg.css', 4133 + 'uri' => '/res/pkg/19d2a41f/differential.pkg.css', 4125 4134 'type' => 'css', 4126 4135 ), 4127 4136 '27c55b30' => ··· 4235 4244 'reverse' => 4236 4245 array( 4237 4246 'aphront-attached-file-view-css' => '6b1fccc6', 4238 - 'aphront-dialog-view-css' => '25d66007', 4239 - 'aphront-error-view-css' => '25d66007', 4240 - 'aphront-form-view-css' => '25d66007', 4241 - 'aphront-list-filter-view-css' => '25d66007', 4242 - 'aphront-pager-view-css' => '25d66007', 4243 - 'aphront-panel-view-css' => '25d66007', 4244 - 'aphront-table-view-css' => '25d66007', 4245 - 'aphront-tokenizer-control-css' => '25d66007', 4246 - 'aphront-tooltip-css' => '25d66007', 4247 - 'aphront-typeahead-control-css' => '25d66007', 4248 - 'differential-changeset-view-css' => '8aaacd1b', 4249 - 'differential-core-view-css' => '8aaacd1b', 4247 + 'aphront-dialog-view-css' => '56e0b740', 4248 + 'aphront-error-view-css' => '56e0b740', 4249 + 'aphront-form-view-css' => '56e0b740', 4250 + 'aphront-list-filter-view-css' => '56e0b740', 4251 + 'aphront-pager-view-css' => '56e0b740', 4252 + 'aphront-panel-view-css' => '56e0b740', 4253 + 'aphront-table-view-css' => '56e0b740', 4254 + 'aphront-tokenizer-control-css' => '56e0b740', 4255 + 'aphront-tooltip-css' => '56e0b740', 4256 + 'aphront-typeahead-control-css' => '56e0b740', 4257 + 'differential-changeset-view-css' => '19d2a41f', 4258 + 'differential-core-view-css' => '19d2a41f', 4250 4259 'differential-inline-comment-editor' => '27c55b30', 4251 - 'differential-local-commits-view-css' => '8aaacd1b', 4252 - 'differential-results-table-css' => '8aaacd1b', 4253 - 'differential-revision-add-comment-css' => '8aaacd1b', 4254 - 'differential-revision-comment-css' => '8aaacd1b', 4255 - 'differential-revision-comment-list-css' => '8aaacd1b', 4256 - 'differential-revision-history-css' => '8aaacd1b', 4257 - 'differential-revision-list-css' => '8aaacd1b', 4258 - 'differential-table-of-contents-css' => '8aaacd1b', 4260 + 'differential-local-commits-view-css' => '19d2a41f', 4261 + 'differential-results-table-css' => '19d2a41f', 4262 + 'differential-revision-add-comment-css' => '19d2a41f', 4263 + 'differential-revision-comment-css' => '19d2a41f', 4264 + 'differential-revision-comment-list-css' => '19d2a41f', 4265 + 'differential-revision-history-css' => '19d2a41f', 4266 + 'differential-revision-list-css' => '19d2a41f', 4267 + 'differential-table-of-contents-css' => '19d2a41f', 4259 4268 'diffusion-commit-view-css' => 'c8ce2d88', 4260 4269 'diffusion-icons-css' => 'c8ce2d88', 4261 - 'global-drag-and-drop-css' => '25d66007', 4262 - 'inline-comment-summary-css' => '8aaacd1b', 4270 + 'global-drag-and-drop-css' => '56e0b740', 4271 + 'inline-comment-summary-css' => '19d2a41f', 4263 4272 'javelin-aphlict' => '26980a1c', 4264 4273 'javelin-behavior' => '7d174323', 4265 4274 'javelin-behavior-aphlict-dropdown' => '26980a1c', ··· 4330 4339 'javelin-util' => '7d174323', 4331 4340 'javelin-vector' => '7d174323', 4332 4341 'javelin-workflow' => '7d174323', 4333 - 'lightbox-attachment-css' => '25d66007', 4342 + 'lightbox-attachment-css' => '56e0b740', 4334 4343 'maniphest-task-summary-css' => '6b1fccc6', 4335 4344 'maniphest-transaction-detail-css' => '6b1fccc6', 4336 4345 'phabricator-busy' => '26980a1c', 4337 - 'phabricator-content-source-view-css' => '8aaacd1b', 4338 - 'phabricator-core-buttons-css' => '25d66007', 4339 - 'phabricator-core-css' => '25d66007', 4340 - 'phabricator-crumbs-view-css' => '25d66007', 4341 - 'phabricator-directory-css' => '25d66007', 4346 + 'phabricator-content-source-view-css' => '19d2a41f', 4347 + 'phabricator-core-buttons-css' => '56e0b740', 4348 + 'phabricator-core-css' => '56e0b740', 4349 + 'phabricator-crumbs-view-css' => '56e0b740', 4350 + 'phabricator-directory-css' => '56e0b740', 4342 4351 'phabricator-drag-and-drop-file-upload' => '27c55b30', 4343 4352 'phabricator-dropdown-menu' => '26980a1c', 4344 4353 'phabricator-file-upload' => '26980a1c', 4345 - 'phabricator-filetree-view-css' => '25d66007', 4346 - 'phabricator-flag-css' => '25d66007', 4347 - 'phabricator-form-view-css' => '25d66007', 4348 - 'phabricator-header-view-css' => '25d66007', 4349 - 'phabricator-jump-nav' => '25d66007', 4354 + 'phabricator-filetree-view-css' => '56e0b740', 4355 + 'phabricator-flag-css' => '56e0b740', 4356 + 'phabricator-form-view-css' => '56e0b740', 4357 + 'phabricator-header-view-css' => '56e0b740', 4358 + 'phabricator-jump-nav' => '56e0b740', 4350 4359 'phabricator-keyboard-shortcut' => '26980a1c', 4351 4360 'phabricator-keyboard-shortcut-manager' => '26980a1c', 4352 - 'phabricator-main-menu-view' => '25d66007', 4361 + 'phabricator-main-menu-view' => '56e0b740', 4353 4362 'phabricator-menu-item' => '26980a1c', 4354 - 'phabricator-nav-view-css' => '25d66007', 4363 + 'phabricator-nav-view-css' => '56e0b740', 4355 4364 'phabricator-notification' => '26980a1c', 4356 - 'phabricator-notification-css' => '25d66007', 4357 - 'phabricator-notification-menu-css' => '25d66007', 4358 - 'phabricator-object-item-list-view-css' => '25d66007', 4359 - 'phabricator-object-selector-css' => '8aaacd1b', 4365 + 'phabricator-notification-css' => '56e0b740', 4366 + 'phabricator-notification-menu-css' => '56e0b740', 4367 + 'phabricator-object-item-list-view-css' => '56e0b740', 4368 + 'phabricator-object-selector-css' => '19d2a41f', 4360 4369 'phabricator-phtize' => '26980a1c', 4361 4370 'phabricator-prefab' => '26980a1c', 4362 4371 'phabricator-project-tag-css' => '6b1fccc6', 4363 - 'phabricator-remarkup-css' => '25d66007', 4372 + 'phabricator-remarkup-css' => '56e0b740', 4364 4373 'phabricator-shaped-request' => '27c55b30', 4365 - 'phabricator-side-menu-view-css' => '25d66007', 4366 - 'phabricator-standard-page-view' => '25d66007', 4374 + 'phabricator-side-menu-view-css' => '56e0b740', 4375 + 'phabricator-standard-page-view' => '56e0b740', 4367 4376 'phabricator-textareautils' => '26980a1c', 4368 4377 'phabricator-tooltip' => '26980a1c', 4369 - 'phabricator-transaction-view-css' => '25d66007', 4370 - 'phabricator-zindex-css' => '25d66007', 4371 - 'sprite-apps-large-css' => '25d66007', 4372 - 'sprite-gradient-css' => '25d66007', 4373 - 'sprite-icon-css' => '25d66007', 4374 - 'sprite-menu-css' => '25d66007', 4375 - 'syntax-highlighting-css' => '25d66007', 4378 + 'phabricator-transaction-view-css' => '56e0b740', 4379 + 'phabricator-zindex-css' => '56e0b740', 4380 + 'sprite-apps-large-css' => '56e0b740', 4381 + 'sprite-gradient-css' => '56e0b740', 4382 + 'sprite-icon-css' => '56e0b740', 4383 + 'sprite-menu-css' => '56e0b740', 4384 + 'syntax-highlighting-css' => '56e0b740', 4376 4385 ), 4377 4386 ));
+3 -7
src/applications/differential/controller/DifferentialDiffCreateController.php
··· 28 28 } 29 29 30 30 $form = new AphrontFormView(); 31 + $form->setFlexible(true); 31 32 $arcanist_href = PhabricatorEnv::getDoclink( 32 33 'article/Arcanist_User_Guide.html'); 33 34 $arcanist_link = phutil_tag( ··· 63 64 id(new AphrontFormSubmitControl()) 64 65 ->setValue(pht("Create Diff \xC2\xBB"))); 65 66 66 - $panel = new AphrontPanelView(); 67 - $panel->setHeader(pht('Create New Diff')); 68 - $panel->setNoBackground(); 69 - $panel->appendChild($form); 70 - $panel->setWidth(AphrontPanelView::WIDTH_FORM); 71 - 72 67 $crumbs = $this->buildApplicationCrumbs(); 73 68 $crumbs->addCrumb( 74 69 id(new PhabricatorCrumbView()) ··· 78 73 return $this->buildApplicationPage( 79 74 array( 80 75 $crumbs, 81 - $panel 76 + $form 82 77 ), 83 78 array( 84 79 'title' => pht('Create Diff'), 85 80 'device' => true, 81 + 'dust' => true, 86 82 )); 87 83 } 88 84
+25 -10
src/applications/differential/controller/DifferentialRevisionEditController.php
··· 82 82 83 83 $form = new AphrontFormView(); 84 84 $form->setUser($request->getUser()); 85 + $form->setFlexible(true); 85 86 if ($diff) { 86 87 $form->addHiddenInput('diffID', $diff->getID()); 87 88 } ··· 131 132 132 133 $form->appendChild($submit); 133 134 134 - $panel = new AphrontPanelView(); 135 + $crumbs = $this->buildApplicationCrumbs(); 135 136 if ($revision->getID()) { 136 137 if ($diff) { 137 - $panel->setHeader(pht('Update Differential Revision')); 138 + $title = pht('Update Differential Revision'); 139 + $crumbs->addCrumb( 140 + id(new PhabricatorCrumbView()) 141 + ->setName('D'.$revision->getID()) 142 + ->setHref('/differential/diff/'.$diff->getID().'/')); 138 143 } else { 139 - $panel->setHeader(pht('Edit Differential Revision')); 144 + $title = pht('Edit Differential Revision'); 145 + $crumbs->addCrumb( 146 + id(new PhabricatorCrumbView()) 147 + ->setName('D'.$revision->getID()) 148 + ->setHref('/D'.$revision->getID())); 140 149 } 141 150 } else { 142 - $panel->setHeader(pht('Create New Differential Revision')); 151 + $title = pht('Create New Differential Revision'); 143 152 } 144 153 145 - $panel->appendChild($form); 146 - $panel->setWidth(AphrontPanelView::WIDTH_FORM); 147 - $panel->setNoBackground(); 154 + $crumbs->addCrumb( 155 + id(new PhabricatorCrumbView()) 156 + ->setName($title) 157 + ->setHref('')); 148 158 149 - return $this->buildStandardPageResponse( 150 - array($error_view, $panel), 159 + return $this->buildApplicationPage( 160 + array( 161 + $crumbs, 162 + $error_view, 163 + $form), 151 164 array( 152 - 'title' => pht('Edit Differential Revision'), 165 + 'title' => $title, 166 + 'device' => true, 167 + 'dust' => true, 153 168 )); 154 169 } 155 170
-2
src/applications/directory/controller/PhabricatorDirectoryMainController.php
··· 353 353 )); 354 354 355 355 $panel = new AphrontPanelView(); 356 - $panel->setHeader('Jump Nav'); 357 356 $panel->setNoBackground(); 358 357 // $panel->appendChild(); 359 358 360 359 $list_filter = new AphrontListFilterView(); 361 - $list_filter->appendChild(phutil_tag('h1', array(), 'Jump Nav')); 362 360 $list_filter->appendChild($form); 363 361 364 362 $container = phutil_tag('div',
+9 -8
src/applications/herald/controller/HeraldNewController.php
··· 57 57 $form = id(new AphrontFormView()) 58 58 ->setUser($user) 59 59 ->setAction('/herald/rule/') 60 + ->setFlexible(true) 60 61 ->appendChild( 61 62 id(new AphrontFormSelectControl()) 62 63 ->setLabel(pht('New rule for')) ··· 69 70 ->setValue(pht('Create Rule')) 70 71 ->addCancelButton('/herald/view/'.$this->contentType.'/')); 71 72 72 - $panel = new AphrontPanelView(); 73 - $panel->setHeader(pht('Create New Herald Rule')); 74 - $panel->setWidth(AphrontPanelView::WIDTH_FULL); 75 - $panel->appendChild($form); 76 - $panel->setNoBackground(); 73 + $header = new PhabricatorHeaderView(); 74 + $header->setHeader(pht('Create New Herald Rule')); 77 75 78 76 $nav = $this->renderNav(); 79 77 $nav->selectFilter('new'); 80 - $nav->appendChild($panel); 78 + $nav->appendChild($header); 79 + $nav->appendChild($form); 81 80 82 - return $this->buildStandardPageResponse( 81 + return $this->buildApplicationPage( 83 82 $nav, 84 83 array( 85 - 'title' => 'Create Herald Rule', 84 + 'title' => pht('Create Herald Rule'), 85 + 'device' => true, 86 + 'dust' => true, 86 87 )); 87 88 } 88 89
+6 -7
src/applications/herald/controller/HeraldRuleController.php
··· 171 171 172 172 $this->setupEditorBehavior($rule, $handles); 173 173 174 - $panel = new AphrontPanelView(); 175 - $panel->setHeader( 174 + $header = new PhabricatorHeaderView(); 175 + $header->setHeader( 176 176 $rule->getID() 177 177 ? pht('Edit Herald Rule') 178 178 : pht('Create Herald Rule')); 179 - $panel->appendChild($form); 180 - $panel->setNoBackground(); 181 179 182 180 $nav = $this->renderNav(); 183 181 $nav->selectFilter( ··· 185 183 $nav->appendChild( 186 184 array( 187 185 $error_view, 188 - $panel, 186 + $header, 187 + $form, 189 188 )); 190 189 191 - return $this->buildStandardPageResponse( 190 + return $this->buildApplicationPage( 192 191 $nav, 193 192 array( 194 - 'title' => 'Edit Rule', 193 + 'title' => pht('Edit Rule'), 195 194 )); 196 195 } 197 196
+5 -9
src/applications/herald/controller/HeraldTestConsoleController.php
··· 111 111 id(new AphrontFormSubmitControl()) 112 112 ->setValue(pht('Test Rules'))); 113 113 114 - $panel = new AphrontPanelView(); 115 - $panel->setHeader(pht('Test Herald Rules')); 116 - $panel->setWidth(AphrontPanelView::WIDTH_FULL); 117 - $panel->appendChild($form); 118 - $panel->setNoBackground(); 119 - 120 114 $nav = $this->renderNav(); 121 115 $nav->selectFilter('test'); 122 116 $nav->appendChild( 123 117 array( 124 118 $error_view, 125 - $panel, 119 + $form, 126 120 )); 127 121 128 122 $crumbs = id($this->buildApplicationCrumbs()) ··· 135 129 ->setName(pht('Test Console'))); 136 130 $nav->setCrumbs($crumbs); 137 131 138 - return $this->buildStandardPageResponse( 132 + return $this->buildApplicationPage( 139 133 $nav, 140 134 array( 141 - 'title' => 'Test Console', 135 + 'title' => pht('Test Console'), 136 + 'dust' => true, 137 + 'device' => true, 142 138 )); 143 139 } 144 140
+2 -8
src/applications/mailinglists/controller/PhabricatorMailingListsEditController.php
··· 114 114 ->setValue(pht('Save')) 115 115 ->addCancelButton($this->getApplicationURI())); 116 116 117 - $panel = new AphrontPanelView(); 118 117 if ($list->getID()) { 119 - $panel->setHeader(pht('Edit Mailing List')); 120 118 $crumbs->addCrumb( 121 119 id(new PhabricatorCrumbView()) 122 120 ->setName(pht('Edit Mailing List')) 123 121 ->setHref($this->getApplicationURI('/edit/'.$list->getID().'/'))); 124 122 } else { 125 - $panel->setHeader(pht('Create Mailing List')); 126 123 $crumbs->addCrumb( 127 124 id(new PhabricatorCrumbView()) 128 125 ->setName(pht('Create Mailing List')) 129 126 ->setHref($this->getApplicationURI('/edit/'))); 130 127 } 131 128 132 - $panel->appendChild($form); 133 - $panel->setWidth(AphrontPanelView::WIDTH_FORM); 134 - $panel->setNoBackground(); 135 - 136 129 return $this->buildApplicationPage( 137 130 array( 138 131 $crumbs, 139 132 $error_view, 140 - $panel, 133 + $form, 141 134 ), 142 135 array( 143 136 'title' => pht('Edit Mailing List'), 144 137 'device' => true, 138 + 'dust' => true, 145 139 )); 146 140 } 147 141
+2 -6
src/applications/maniphest/controller/ManiphestTaskEditController.php
··· 355 355 $project_tokenizer_id = celerity_generate_unique_node_id(); 356 356 357 357 $form = new AphrontFormView(); 358 + $form->setFlexible(true); 358 359 $form 359 360 ->setUser($user) 360 361 ->setAction($request->getRequestURI()->getPath()) ··· 499 500 ->addCancelButton($cancel_uri) 500 501 ->setValue($button_name)); 501 502 502 - $panel = new AphrontPanelView(); 503 - $panel->setWidth(AphrontPanelView::WIDTH_FULL); 504 - $panel->setHeader($header_name); 505 - $panel->appendChild($form); 506 - $panel->setNoBackground(); 507 503 $inst1 = pht('Description Preview'); 508 504 $inst2 = pht('Loading preview...'); 509 505 ··· 550 546 array( 551 547 $crumbs, 552 548 $error_view, 553 - $panel, 549 + $form, 554 550 $description_preview_panel, 555 551 ), 556 552 array(
+12 -9
src/applications/owners/controller/PhabricatorOwnersEditController.php
··· 134 134 $token_all_owners = mpull($token_all_owners, 'getFullName'); 135 135 136 136 if ($package->getID()) { 137 - $title = 'Edit Package'; 137 + $title = pht('Edit Package'); 138 138 $side_nav_filter = 'edit/'.$this->id; 139 139 } else { 140 - $title = 'New Package'; 140 + $title = pht('New Package'); 141 141 $side_nav_filter = 'new'; 142 142 } 143 143 $this->setSideNavFilter($side_nav_filter); ··· 181 181 182 182 $form = id(new AphrontFormView()) 183 183 ->setUser($user) 184 + ->setFlexible(true) 184 185 ->appendChild( 185 186 id(new AphrontFormTextControl()) 186 187 ->setLabel('Name') ··· 249 250 ->addCancelButton($cancel_uri) 250 251 ->setValue('Save Package')); 251 252 252 - $panel = new AphrontPanelView(); 253 - $panel->setHeader($title); 254 - $panel->setWidth(AphrontPanelView::WIDTH_WIDE); 255 - $panel->appendChild($error_view); 256 - $panel->appendChild($form); 253 + $header = id(new PhabricatorHeaderView()) 254 + ->setHeader($title); 257 255 258 - return $this->buildStandardPageResponse( 259 - $panel, 256 + return $this->buildApplicationPage( 257 + array( 258 + $error_view, 259 + $header, 260 + $form, 261 + ), 260 262 array( 261 263 'title' => $title, 264 + 'dust' => true, 262 265 )); 263 266 } 264 267
-4
src/applications/phame/controller/blog/PhameBlogEditController.php
··· 171 171 $error_view = null; 172 172 } 173 173 174 - $header = id(new PhabricatorHeaderView()) 175 - ->setHeader($page_title); 176 - 177 174 $crumbs = $this->buildApplicationCrumbs(); 178 175 $crumbs->addCrumb( 179 176 id(new PhabricatorCrumbView()) ··· 185 182 $nav->appendChild( 186 183 array( 187 184 $crumbs, 188 - $header, 189 185 $error_view, 190 186 $form, 191 187 ));
-3
src/applications/phame/controller/post/PhamePostEditController.php
··· 166 166 'uri' => '/phame/post/preview/', 167 167 )); 168 168 169 - $header = id(new PhabricatorHeaderView())->setHeader($page_title); 170 - 171 169 if ($errors) { 172 170 $error_view = id(new AphrontErrorView()) 173 171 ->setTitle(pht('Errors saving post.')) ··· 186 184 $nav->appendChild( 187 185 array( 188 186 $crumbs, 189 - $header, 190 187 $error_view, 191 188 $form, 192 189 $preview_panel,
-3
src/applications/phame/controller/post/PhamePostNewController.php
··· 75 75 ->setHref($view_uri)); 76 76 $nav->appendChild($crumbs); 77 77 78 - $nav->appendChild( 79 - id(new PhabricatorHeaderView())->setHeader($title)); 80 - 81 78 if (!$blogs) { 82 79 $notification = id(new AphrontErrorView()) 83 80 ->setSeverity(AphrontErrorView::SEVERITY_NODATA)
+4 -5
src/applications/phriction/controller/PhrictionEditController.php
··· 226 226 ->addCancelButton($cancel_uri) 227 227 ->setValue($submit_button)); 228 228 229 - $panel = id(new AphrontPanelView()) 230 - ->setNoBackground() 231 - ->setHeader($panel_header) 232 - ->appendChild($form); 229 + $header = id(new PhabricatorHeaderView()) 230 + ->setHeader($panel_header); 233 231 234 232 $preview_panel = hsprintf( 235 233 '<div class="phriction-wrap"> ··· 255 253 array( 256 254 $draft_note, 257 255 $error_view, 258 - $panel, 256 + $header, 257 + $form, 259 258 $preview_panel, 260 259 ), 261 260 array(
+3 -9
src/applications/project/controller/PhabricatorProjectCreateController.php
··· 107 107 ->setValue(pht('Create')) 108 108 ->addCancelButton('/project/')); 109 109 110 - $panel = new AphrontPanelView(); 111 - $panel 112 - ->setWidth(AphrontPanelView::WIDTH_FORM) 113 - ->setHeader(pht('Create a New Project')) 114 - ->setNoBackground() 115 - ->appendChild($form); 116 - 117 110 $crumbs = $this->buildApplicationCrumbs($this->buildSideNavView()); 118 111 $crumbs->addCrumb( 119 112 id(new PhabricatorCrumbView()) ··· 124 117 array( 125 118 $crumbs, 126 119 $error_view, 127 - $panel, 120 + $form, 128 121 ), 129 122 array( 130 123 'title' => pht('Create New Project'), 131 - 'device' => true 124 + 'device' => true, 125 + 'dust' => true, 132 126 )); 133 127 } 134 128 }
+9 -10
src/applications/project/controller/PhabricatorProjectMembersEditController.php
··· 91 91 $form = new AphrontFormView(); 92 92 $form 93 93 ->setUser($user) 94 + ->setFlexible(true) 94 95 ->appendChild( 95 96 id(new AphrontFormTokenizerControl()) 96 97 ->setName('phids') ··· 101 102 ->addCancelButton('/project/view/'.$project->getID().'/') 102 103 ->setValue(pht('Add Members'))); 103 104 $faux_form = id(new AphrontFormLayoutView()) 104 - ->setBackgroundShading(true) 105 - ->setPadded(true) 106 105 ->appendChild( 107 106 id(new AphrontFormInsetView()) 108 107 ->setTitle(pht('Current Members (%d)', count($handles))) 109 108 ->appendChild($list)); 110 109 111 - $panel = new AphrontPanelView(); 112 - $panel->setHeader($header_name); 113 - $panel->setWidth(AphrontPanelView::WIDTH_FORM); 114 - $panel->setNoBackground(); 115 - $panel->appendChild($form); 116 - $panel->appendChild(phutil_tag('br')); 117 - $panel->appendChild($faux_form); 110 + $box = new PHUIBoxView(); 111 + $box->appendChild($faux_form); 112 + $box->setShadow(true); 113 + $box->addPadding(PHUI::PADDING_LARGE); 114 + $box->addMargin(PHUI::MARGIN_LARGE); 118 115 119 116 $nav = $this->buildLocalNavigation($project); 120 117 $nav->selectFilter('members'); 121 - $nav->appendChild($panel); 118 + $nav->appendChild($form); 119 + $nav->appendChild($box); 122 120 123 121 $crumbs = $this->buildApplicationCrumbs($this->buildSideNavView()); 124 122 $crumbs->addCrumb( ··· 136 134 array( 137 135 'title' => $title, 138 136 'device' => true, 137 + 'dust' => true, 139 138 )); 140 139 } 141 140
+2 -7
src/applications/project/controller/PhabricatorProjectProfileEditController.php
··· 151 151 ->setUser($user) 152 152 ->setAction($action) 153 153 ->setEncType('multipart/form-data') 154 + ->setFlexible(true) 154 155 ->appendChild( 155 156 id(new AphrontFormTextControl()) 156 157 ->setLabel(pht('Name')) ··· 219 220 ->addCancelButton('/project/view/'.$project->getID().'/') 220 221 ->setValue(pht('Save'))); 221 222 222 - $panel = new AphrontPanelView(); 223 - $panel->setHeader($header_name); 224 - $panel->setWidth(AphrontPanelView::WIDTH_FORM); 225 - $panel->setNoBackground(); 226 - $panel->appendChild($form); 227 - 228 223 $nav = $this->buildLocalNavigation($project); 229 224 $nav->selectFilter('edit'); 230 225 $nav->appendChild( 231 226 array( 232 227 $error_view, 233 - $panel, 228 + $form, 234 229 )); 235 230 236 231 $crumbs = $this->buildApplicationCrumbs($this->buildSideNavView());
+9 -8
src/applications/repository/controller/PhabricatorRepositoryCreateController.php
··· 71 71 $form 72 72 ->setUser($user) 73 73 ->setAction('/repository/create/') 74 + ->setFlexible(true) 74 75 ->appendChild( 75 76 id(new AphrontFormTextControl()) 76 77 ->setLabel('Name') ··· 102 103 ->setValue('Create Repository') 103 104 ->addCancelButton('/repository/')); 104 105 105 - $panel = new AphrontPanelView(); 106 - $panel->setHeader('Create Repository'); 107 - $panel->appendChild($form); 108 - $panel->setWidth(AphrontPanelView::WIDTH_FORM); 109 - $panel->setNoBackground(); 106 + $header = id(new PhabricatorHeaderView()) 107 + ->setHeader(pht('Create Repository')); 110 108 111 - return $this->buildStandardPageResponse( 109 + return $this->buildApplicationPage( 112 110 array( 113 111 $error_view, 114 - $panel, 112 + $header, 113 + $form, 115 114 ), 116 115 array( 117 - 'title' => 'Create Repository', 116 + 'title' => pht('Create Repository'), 117 + 'device' => true, 118 + 'dust' => true, 118 119 )); 119 120 } 120 121
+16 -17
src/applications/repository/controller/PhabricatorRepositoryEditController.php
··· 153 153 id(new AphrontFormSubmitControl()) 154 154 ->setValue('Save')); 155 155 156 - $panel = new AphrontPanelView(); 157 - $panel->setHeader('Edit Repository'); 158 - $panel->appendChild($form); 159 - $panel->setWidth(AphrontPanelView::WIDTH_FORM); 160 - $panel->setNoBackground(); 156 + $nav = $this->sideNav; 161 157 162 - $nav = $this->sideNav; 158 + $header = id(new PhabricatorHeaderView()) 159 + ->setHeader(pht('Edit Repository')); 163 160 164 161 $nav->appendChild($error_view); 165 - $nav->appendChild($panel); 162 + $nav->appendChild($header); 163 + $nav->appendChild($form); 166 164 167 - return $this->buildStandardPageResponse( 165 + return $this->buildApplicationPage( 168 166 $nav, 169 167 array( 170 - 'title' => 'Edit Repository', 168 + 'title' => pht('Edit Repository'), 169 + 'device' => true, 170 + 'dust' => true, 171 171 )); 172 172 } 173 173 ··· 359 359 $form 360 360 ->setUser($user) 361 361 ->setAction('/repository/edit/'.$repository->getID().'/tracking/') 362 + ->setFlexible(true) 362 363 ->appendChild(hsprintf( 363 364 '<p class="aphront-form-instructions">Phabricator can track '. 364 365 'repositories, importing commits as they happen and notifying '. ··· 675 676 id(new AphrontFormSubmitControl()) 676 677 ->setValue('Save Configuration')); 677 678 678 - $panel = new AphrontPanelView(); 679 - $panel->setHeader('Repository Tracking'); 680 - $panel->appendChild($form); 681 - $panel->setWidth(AphrontPanelView::WIDTH_WIDE); 682 - $panel->setNoBackground(); 679 + $header = id(new PhabricatorHeaderView()) 680 + ->setHeader(pht('Edit Repository Tracking')); 683 681 684 682 $nav = $this->sideNav; 685 683 $nav->appendChild($error_view); 686 - $nav->appendChild($panel); 684 + $nav->appendChild($header); 685 + $nav->appendChild($form); 687 686 688 - return $this->buildStandardPageResponse( 687 + return $this->buildApplicationPage( 689 688 $nav, 690 689 array( 691 - 'title' => 'Edit Repository Tracking', 690 + 'title' => pht('Edit Repository Tracking'), 692 691 )); 693 692 } 694 693
+9 -2
src/view/control/PhabricatorObjectSelectorDialog.php
··· 124 124 <td class="phabricator-object-selector-search-text">%s</td> 125 125 </tr> 126 126 </table>', 127 - phutil_tag('select', array('id' => $filter_id), $options), 128 - phutil_tag('input', array('id' => $query_id)))); 127 + phutil_tag( 128 + 'select', 129 + array('id' => $filter_id), 130 + $options), 131 + phutil_tag( 132 + 'input', 133 + array( 134 + 'id' => $query_id, 135 + 'type' => 'text')))); 129 136 130 137 $result_box = phutil_tag( 131 138 'div',
+1
src/view/page/PhabricatorStandardPageView.php
··· 115 115 require_celerity_resource('phabricator-zindex-css'); 116 116 require_celerity_resource('phabricator-core-buttons-css'); 117 117 require_celerity_resource('spacing-css'); 118 + require_celerity_resource('phui-form-css'); // Evan will hate this 118 119 require_celerity_resource('sprite-gradient-css'); 119 120 require_celerity_resource('phabricator-standard-page-view'); 120 121
+31 -37
webroot/rsrc/css/aphront/form-view.css
··· 15 15 } 16 16 17 17 .aphront-form-view label.aphront-form-label { 18 - padding-top: 4px; 18 + padding-top: 5px; 19 19 width: 19%; 20 20 float: left; 21 21 text-align: right; 22 22 font-weight: bold; 23 23 font-size: 13px; 24 - color: #666; 24 + color: #757c88; 25 + text-shadow: 0 1px rgba(255,255,255,1); 25 26 } 26 27 27 28 .device-phone .aphront-form-view label.aphront-form-label { ··· 29 30 float: none; 30 31 text-align: left; 31 32 width: 100%; 32 - color: #777; 33 33 margin-bottom: 3px; 34 34 } 35 35 36 36 .aphront-form-input { 37 37 margin-left: 20%; 38 - margin-right: 25%; 39 - width: 55%; 38 + margin-right: 20%; 39 + width: 60%; 40 40 } 41 41 42 42 .device-phone .aphront-form-input { ··· 45 45 width: 100%; 46 46 } 47 47 48 - .aphront-form-control-text .aphront-form-input input, 49 - .aphront-form-control-password .aphront-form-input input { 50 - font-size: 13px; 51 - padding: 4px 4px; 52 - color: #333; 53 - vertical-align: middle; 54 - background-color: #ffffff; 55 - border: 1px solid #96A6C5; 56 - border-radius: 3px; 57 - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); 58 - } 59 - 60 48 .aphront-form-error { 61 - width: 23%; 49 + width: 18%; 62 50 float: right; 63 51 color: #aa0000; 64 52 font-weight: bold; ··· 80 68 font-size: 11px; 81 69 } 82 70 83 - .aphront-form-input input, 84 - .aphront-form-input textarea { 85 - font-size: 13px; 86 - display: block; 71 + .aphront-form-input input { 87 72 width: 100%; 88 - box-sizing: border-box; 89 73 } 90 - 91 74 92 75 .aphront-form-input textarea { 76 + display: block; 77 + width: 100%; 78 + box-sizing: border-box; 93 79 height: 12em; 94 80 } 95 81 ··· 104 90 } 105 91 106 92 .aphront-form-control-textarea textarea.aphront-textarea-very-short { 107 - height: 3em; 108 - border: 1px solid #96A6C5; 109 - border-radius: 3px; 110 - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); 93 + height: 44px; 111 94 } 112 95 113 96 .aphront-form-control-textarea textarea.aphront-textarea-very-tall { ··· 118 101 padding-top: 2px; 119 102 } 120 103 121 - 122 104 .aphront-form-view .aphront-form-caption { 123 105 font-size: 12px; 124 106 color: #888; 125 107 padding: 2px; 126 108 text-align: right; 127 - margin-right: 25%; 109 + margin-right: 20%; 128 110 margin-left: 20%; 129 111 } 130 112 ··· 138 120 } 139 121 140 122 .aphront-form-instructions { 141 - margin: 0.75em 3% 1.25em; 123 + width: 60%; 124 + margin-left: 20%; 125 + padding: 10px 4px; 126 + } 127 + 128 + .device .aphront-form-instructions { 129 + width: 100%; 130 + margin: 0; 142 131 } 143 132 144 133 .aphront-form-important { ··· 152 141 margin: .5em 2em; 153 142 } 154 143 155 - 156 144 .aphront-form-control-static .aphront-form-input, 157 145 .aphront-form-control-markup .aphront-form-input { 158 - padding-top: 4px; 146 + padding-top: 6px; 159 147 font-size: 13px; 160 148 } 161 149 ··· 205 193 } 206 194 207 195 .aphront-form-inset { 208 - margin: 0 0 1em; 209 - padding: .75em; 210 - background: #f3f3f3; 211 - border: 1px solid #afafaf; 196 + margin: 0 0 10px; 197 + padding: 10px; 198 + background: #fff; 199 + border: 1px solid #d4dae0; 200 + } 201 + 202 + .aphront-form-inset h1 { 203 + color: #777; 204 + font-weight: normal; 205 + padding-bottom: 10px; 212 206 } 213 207 214 208 .aphront-form-drag-and-drop-file-list {
+34 -33
webroot/rsrc/css/aphront/tokenizer.css
··· 3 3 * @requires aphront-typeahead-control-css 4 4 */ 5 5 6 - div.jx-tokenizer { 6 + body div.jx-tokenizer { 7 7 background: transparent; 8 8 position: relative; 9 - display: block; 10 9 width: 100%; 11 10 } 12 11 13 - div.jx-tokenizer-container { 14 - background: #fff; 15 - border: 1px solid #96A6C5; 12 + body div.jx-tokenizer-container { 16 13 position: relative; 17 - width: 100%; 18 - padding: 0 2px; 19 - border-radius: 3px; 20 - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); 21 - } 22 - 23 - div.jx-tokenizer-container-focused { 24 - border-color: #0099ff; 14 + display: block; 15 + padding: 0; 16 + height: 30px; 25 17 } 26 18 27 19 var.jx-tokenizer-metrics { ··· 30 22 top: 20px; 31 23 } 32 24 33 - input.jx-tokenizer-input { 25 + body input.jx-tokenizer-input { 34 26 border: 1px solid transparent; 35 27 border-width: 1px 0px; 36 28 padding: 3px; 37 29 outline: none; 38 30 float: left; 31 + width: 100%; 32 + border-shadow: none; 33 + box-shadow: none; 34 + -webkit-box-shadow: none; 35 + font-size: 13px; 36 + color: #777; 37 + height: 26px; 39 38 } 40 39 41 - span.jx-tokenizer-x-placeholder { 42 - padding: 0 2px; 40 + body input.jx-tokenizer-input:focus { 41 + box-shadow: none; 42 + -webkit-box-shadow: none; 43 + border-color: transparent; 44 + } 45 + 46 + .jx-typeahead-placeholder { 47 + margin-left: 4px; 48 + } 49 + 50 + a.jx-tokenizer-x { 51 + padding-left: 4px; 52 + } 53 + 54 + a.jx-tokenizer-x:hover { 55 + color: #000; 56 + text-decoration: none; 43 57 } 44 58 45 59 a.jx-tokenizer-token { 46 - padding: 2px 0 2px 5px; 60 + padding: 2px 6px 3px; 47 61 border: 1px solid #a4bdec; 48 62 margin: 3px 2px 0 4px; 49 63 background: #dee7f8; 50 64 float: left; 51 - cursor: text; 52 - font-size: 12px; 65 + cursor: pointer; 53 66 border-radius: 3px; 67 + color: #333; 68 + 54 69 } 55 70 56 71 a.jx-tokenizer-token:hover { 57 72 text-decoration: none; 58 73 background: #bbcef1; 59 - cursor: text; 60 74 } 61 - 62 - a.jx-tokenizer-token a.jx-tokenizer-x { 63 - color: #627aad; 64 - font-family: Arial, sans-serif; 65 - font-weight: normal; 66 - cursor: pointer; 67 - padding: 0 4px; 68 - } 69 - 70 - a.jx-tokenizer-token a.jx-tokenizer-x:hover { 71 - text-decoration: none; 72 - } 73 -
+9 -6
webroot/rsrc/css/application/base/main-menu-view.css
··· 134 134 margin: 0 8px 0 52px; 135 135 } 136 136 137 - .phabricator-main-menu-search input { 137 + .phabricator-main-menu .phabricator-main-menu-search input { 138 138 outline: 0; 139 139 margin: 0; 140 + box-shadow: none; 141 + transition: none; 140 142 141 143 width: 100%; 142 144 right: 0; 143 145 position: absolute; 144 - 145 - border: 1px solid #333333; 146 + font-size: 13px; 147 + border: 1px solid #333; 146 148 border-radius: 12px; 147 - background: #555555; 148 - height: 12px; 149 + background-color: #555; 150 + height: 26px; 149 151 line-height: 12px; 150 152 box-shadow: 0px 1px 1px rgba(128, 128, 128, 0.25); 151 153 padding: 6px 32px 6px 10px; ··· 157 159 border-radius: 15px; 158 160 } 159 161 160 - .phabricator-main-menu-search input:focus { 162 + .phabricator-main-menu .phabricator-main-menu-search input:focus { 161 163 background: #c9c9c9; 164 + border: none; 162 165 } 163 166 164 167 .phabricator-main-menu-search input.jx-typeahead-placeholder {
+1
webroot/rsrc/css/application/config/config-options.css
··· 6 6 width: 100%; 7 7 border-collapse: collapse; 8 8 border: 1px solid #cccccc; 9 + background: #fff; 9 10 } 10 11 11 12 .config-option-table th,
+1 -5
webroot/rsrc/css/application/directory/phabricator-jump-nav.css
··· 8 8 margin: 0; 9 9 } 10 10 11 - .phabricator-jump-nav { 11 + input.phabricator-jump-nav[type='text'] { 12 12 font-size: 16px; 13 13 width: 100%; 14 - padding: 4px; 15 - border-radius: 3px; 16 - border: 1px solid #96A6C5; 17 - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); 18 14 } 19 15 20 16 .phabricator-jump-nav-caption {
+1
webroot/rsrc/css/application/objectselector/object-selector.css
··· 18 18 19 19 .phabricator-object-selector-search td { 20 20 padding: 4px 8px; 21 + vertical-align: middle; 21 22 } 22 23 23 24 td.phabricator-object-selector-search-text {
+2 -2
webroot/rsrc/css/application/owners/owners-path-editor.css
··· 8 8 9 9 .owners-path-editor-table td { 10 10 padding: 2px 4px; 11 + vertical-align: middle; 11 12 } 12 13 13 14 .owners-path-editor-table select.owners-repo { ··· 15 16 } 16 17 17 18 .owners-path-editor-table input { 18 - width: 450px; 19 + width: 400px; 19 20 } 20 21 21 22 .owners-path-editor-table div.error-display { 22 - width: 200px; 23 23 padding: 4px 12px 0; 24 24 } 25 25
+12 -3
webroot/rsrc/css/core/remarkup.css
··· 256 256 257 257 258 258 .remarkup-assist-textarea { 259 - border-width: 1px; 260 - border-color: #e5e5e5 #999999 #999999; 259 + border-left-color: #96A6C5; 260 + border-right-color: #96A6C5; 261 + border-bottom-color: #96A6C5; 262 + border-top-color: #c9d4e9; 263 + border-radius: 0; 261 264 262 265 /* Prevent Safari and Chrome users from dragging the textarea any wider, 263 266 because the top bar won't resize along with it. */ 264 267 resize: vertical; 265 268 } 266 269 270 + .remarkup-assist-textarea:focus { 271 + border: 1px solid rgba(82, 168, 236, 0.8); 272 + } 273 + 267 274 .remarkup-assist-bar { 268 275 height: 27px; 269 276 padding: 0 2px; 270 277 271 278 border-width: 1px 1px 0; 272 279 border-style: solid; 273 - border-color: #737373 #999999; 280 + border-top-color: #96A6C5; 281 + border-left-color: #96A6C5; 282 + border-right-color: #96A6C5; 274 283 275 284 background: #f5f5f5; 276 285 overflow: hidden;
+7 -3
webroot/rsrc/css/layout/phabricator-form-view.css
··· 3 3 */ 4 4 5 5 .phabricator-form-view { 6 - padding: .75em; 7 - background: #f9f9f9; 6 + padding: 20px; 7 + background: #f4f5f8; 8 8 border-width: 1px 0; 9 9 border-style: solid; 10 - border-color: #dbdbdb; 10 + border-color: rgb(199, 201, 214); 11 + } 12 + 13 + .device-phone .phabricator-form-view { 14 + padding: 10px 5px 10px 10px; 11 15 } 12 16 13 17 .device .phabricator-form-view .aphront-form-control .aphront-form-label {
+126
webroot/rsrc/css/phui/phui-form.css
··· 1 + /** 2 + * @provides phui-form-css 3 + */ 4 + 5 + select, 6 + textarea, 7 + input[type="text"], 8 + input[type="password"], 9 + input[type="datetime"], 10 + input[type="datetime-local"], 11 + input[type="date"], 12 + input[type="month"], 13 + input[type="time"], 14 + input[type="week"], 15 + input[type="number"], 16 + input[type="email"], 17 + input[type="url"], 18 + input[type="search"], 19 + input[type="tel"], 20 + input[type="color"], 21 + div.jx-tokenizer-container { 22 + display: inline-block; 23 + height: 28px; 24 + line-height: 18px; 25 + color: #555555; 26 + vertical-align: middle; 27 + font: 13px 'Helvetica Neue', Arial, sans-serif; 28 + } 29 + 30 + textarea, 31 + input[type="text"], 32 + input[type="password"], 33 + input[type="datetime"], 34 + input[type="datetime-local"], 35 + input[type="date"], 36 + input[type="month"], 37 + input[type="time"], 38 + input[type="week"], 39 + input[type="number"], 40 + input[type="email"], 41 + input[type="url"], 42 + input[type="search"], 43 + input[type="tel"], 44 + input[type="color"], 45 + div.jx-tokenizer-container { 46 + padding: 4px 6px; 47 + background-color: #ffffff; 48 + border: 1px solid #96A6C5; 49 + 50 + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); 51 + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); 52 + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); 53 + 54 + -webkit-transition: border linear .05s, box-shadow linear .05s; 55 + -moz-transition: border linear .05s, box-shadow linear .05s; 56 + -o-transition: border linear .05s, box-shadow linear .05s; 57 + transition: border linear .05s, box-shadow linear .05s; 58 + 59 + -webkit-box-sizing: border-box; 60 + -moz-box-sizing: border-box; 61 + box-sizing: border-box; 62 + } 63 + 64 + textarea:focus, 65 + input[type="text"]:focus, 66 + input[type="password"]:focus, 67 + input[type="datetime"]:focus, 68 + input[type="datetime-local"]:focus, 69 + input[type="date"]:focus, 70 + input[type="month"]:focus, 71 + input[type="time"]:focus, 72 + input[type="week"]:focus, 73 + input[type="number"]:focus, 74 + input[type="email"]:focus, 75 + input[type="url"]:focus, 76 + input[type="search"]:focus, 77 + input[type="tel"]:focus, 78 + input[type="color"]:focus, 79 + div.jx-tokenizer-container-focused { 80 + border-color: rgba(82, 168, 236, 0.8); 81 + outline: 0; 82 + outline: thin dotted \9; 83 + /* IE6-9 */ 84 + 85 + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6); 86 + -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6); 87 + box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6); 88 + } 89 + input[type="radio"], 90 + input[type="checkbox"] { 91 + margin: 4px 0 0; 92 + margin-top: 1px \9; 93 + /* IE8-9 */ 94 + line-height: normal; 95 + } 96 + 97 + select { 98 + height: 24px; 99 + line-height: 24px; 100 + border: 1px solid #a1a5a9; 101 + background-color: #ffffff; 102 + } 103 + select[multiple], 104 + select[size] { 105 + height: auto; 106 + } 107 + select:focus, 108 + input[type="file"]:focus, 109 + input[type="radio"]:focus, 110 + input[type="checkbox"]:focus { 111 + outline: thin dotted #333; 112 + outline: 5px auto -webkit-focus-ring-color; 113 + outline-offset: -2px; 114 + } 115 + input:-moz-placeholder, 116 + textarea:-moz-placeholder { 117 + color: #999999; 118 + } 119 + input:-ms-input-placeholder, 120 + textarea:-ms-input-placeholder { 121 + color: #999999; 122 + } 123 + input::-webkit-input-placeholder, 124 + textarea::-webkit-input-placeholder { 125 + color: #999999; 126 + }
+1 -1
webroot/rsrc/js/application/herald/HeraldRuleEditor.js
··· 232 232 set_fn(this._config.template.defaultColor); 233 233 break; 234 234 default: 235 - input = JX.$N('input'); 235 + input = JX.$N('input', {type: 'text'}); 236 236 get_fn = function() { return input.value; }; 237 237 set_fn = function(v) { input.value = v; }; 238 238 break;