@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.

Move Setup Issues into it's own notification style menu

Summary: Ref T11132. This gets rid of the red bar for admins and instead shows a new menu item next to notifications/chat if there are unresolved configuration issues. Menu goes away if there are no issues. May move this later into the bell icon, but think think might be the right place to start especially for NUX and updates. Maybe limit the number of items?

Test Plan:
Tested with some, lots, and no config issues.

{F1790156}

Reviewers: epriestley

Reviewed By: epriestley

Subscribers: Korvin

Maniphest Tasks: T11132

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

+227 -102
+33 -33
resources/celerity/map.php
··· 7 7 */ 8 8 return array( 9 9 'names' => array( 10 - 'core.pkg.css' => '25e4069a', 11 - 'core.pkg.js' => 'b562c3db', 10 + 'core.pkg.css' => '7d178771', 11 + 'core.pkg.js' => '2b8af4e4', 12 12 'darkconsole.pkg.js' => 'e7393ebb', 13 13 'differential.pkg.css' => '3fb7f532', 14 14 'differential.pkg.js' => '634399e9', ··· 32 32 'rsrc/css/aphront/typeahead.css' => 'd4f16145', 33 33 'rsrc/css/application/almanac/almanac.css' => 'dbb9b3af', 34 34 'rsrc/css/application/auth/auth.css' => '0877ed6e', 35 - 'rsrc/css/application/base/main-menu-view.css' => '3b0d39f7', 36 - 'rsrc/css/application/base/notification-menu.css' => 'f31c0bde', 35 + 'rsrc/css/application/base/main-menu-view.css' => 'e862571a', 36 + 'rsrc/css/application/base/notification-menu.css' => 'b3ab500d', 37 37 'rsrc/css/application/base/phabricator-application-launch-view.css' => '95351601', 38 38 'rsrc/css/application/base/phui-theme.css' => '027ba77e', 39 - 'rsrc/css/application/base/standard-page-view.css' => 'e709f6d0', 39 + 'rsrc/css/application/base/standard-page-view.css' => '99a7d403', 40 40 'rsrc/css/application/chatlog/chatlog.css' => 'd295b020', 41 41 'rsrc/css/application/conduit/conduit-api.css' => '7bc725c4', 42 42 'rsrc/css/application/config/config-options.css' => '0ede4c9b', ··· 45 45 'rsrc/css/application/config/setup-issue.css' => 'f794cfc3', 46 46 'rsrc/css/application/config/unhandled-exception.css' => '4c96257a', 47 47 'rsrc/css/application/conpherence/durable-column.css' => '86396117', 48 - 'rsrc/css/application/conpherence/menu.css' => 'f99fee4c', 49 - 'rsrc/css/application/conpherence/message-pane.css' => '5897d3ac', 48 + 'rsrc/css/application/conpherence/menu.css' => '90bdf85c', 49 + 'rsrc/css/application/conpherence/message-pane.css' => '5c7b7b17', 50 50 'rsrc/css/application/conpherence/notification.css' => '6cdcc253', 51 51 'rsrc/css/application/conpherence/transaction.css' => '85d0974c', 52 52 'rsrc/css/application/conpherence/update.css' => 'faf6be09', 53 - 'rsrc/css/application/conpherence/widget-pane.css' => '775eaaba', 53 + 'rsrc/css/application/conpherence/widget-pane.css' => 'c5b74f9e', 54 54 'rsrc/css/application/contentsource/content-source-view.css' => '4b8b05d4', 55 55 'rsrc/css/application/countdown/timer.css' => '16c52f5c', 56 56 'rsrc/css/application/daemon/bulk-job.css' => 'df9c1d4a', ··· 107 107 'rsrc/css/core/core.css' => 'd0801452', 108 108 'rsrc/css/core/remarkup.css' => '5ed06ed8', 109 109 'rsrc/css/core/syntax.css' => '769d3498', 110 - 'rsrc/css/core/z-index.css' => '5b6fcf3f', 110 + 'rsrc/css/core/z-index.css' => '2b01a823', 111 111 'rsrc/css/diviner/diviner-shared.css' => 'aa3656aa', 112 112 'rsrc/css/font/font-aleo.css' => '8bdb2835', 113 113 'rsrc/css/font/font-awesome.css' => '2b7ebbcc', ··· 160 160 'rsrc/css/phui/phui-timeline-view.css' => 'bc523970', 161 161 'rsrc/css/phui/phui-two-column-view.css' => '5afdf637', 162 162 'rsrc/css/phui/workboards/phui-workboard-color.css' => 'ac6fe6a7', 163 - 'rsrc/css/phui/workboards/phui-workboard.css' => 'e6d89647', 163 + 'rsrc/css/phui/workboards/phui-workboard.css' => 'bda3ef58', 164 164 'rsrc/css/phui/workboards/phui-workcard.css' => '0c62d7c5', 165 165 'rsrc/css/phui/workboards/phui-workpanel.css' => '92197373', 166 166 'rsrc/css/sprite-login.css' => '60e8560e', ··· 357 357 'rsrc/image/texture/table_header_hover.png' => '038ec3b9', 358 358 'rsrc/image/texture/table_header_tall.png' => 'd56b434f', 359 359 'rsrc/js/application/aphlict/Aphlict.js' => '5359e785', 360 - 'rsrc/js/application/aphlict/behavior-aphlict-dropdown.js' => '031cee25', 360 + 'rsrc/js/application/aphlict/behavior-aphlict-dropdown.js' => '49e20786', 361 361 'rsrc/js/application/aphlict/behavior-aphlict-listen.js' => 'fb20ac8d', 362 362 'rsrc/js/application/aphlict/behavior-aphlict-status.js' => 'ea681761', 363 363 'rsrc/js/application/aphlict/behavior-desktop-notifications-control.js' => 'edd1ba66', ··· 549 549 'config-options-css' => '0ede4c9b', 550 550 'config-welcome-css' => '035aa483', 551 551 'conpherence-durable-column-view' => '86396117', 552 - 'conpherence-menu-css' => 'f99fee4c', 553 - 'conpherence-message-pane-css' => '5897d3ac', 552 + 'conpherence-menu-css' => '90bdf85c', 553 + 'conpherence-message-pane-css' => '5c7b7b17', 554 554 'conpherence-notification-css' => '6cdcc253', 555 555 'conpherence-thread-manager' => '01774ab2', 556 556 'conpherence-transaction-css' => '85d0974c', 557 557 'conpherence-update-css' => 'faf6be09', 558 - 'conpherence-widget-pane-css' => '775eaaba', 558 + 'conpherence-widget-pane-css' => 'c5b74f9e', 559 559 'd3' => 'a11a5ff2', 560 560 'differential-changeset-view-css' => '9ef7d354', 561 561 'differential-core-view-css' => '5b7b8ff4', ··· 580 580 'inline-comment-summary-css' => '51efda3a', 581 581 'javelin-aphlict' => '5359e785', 582 582 'javelin-behavior' => '61cbc29a', 583 - 'javelin-behavior-aphlict-dropdown' => '031cee25', 583 + 'javelin-behavior-aphlict-dropdown' => '49e20786', 584 584 'javelin-behavior-aphlict-listen' => 'fb20ac8d', 585 585 'javelin-behavior-aphlict-status' => 'ea681761', 586 586 'javelin-behavior-aphront-basic-tokenizer' => 'b3a4b884', ··· 784 784 'phabricator-flag-css' => '5337623f', 785 785 'phabricator-keyboard-shortcut' => '1ae869f2', 786 786 'phabricator-keyboard-shortcut-manager' => '4a021c10', 787 - 'phabricator-main-menu-view' => '3b0d39f7', 787 + 'phabricator-main-menu-view' => 'e862571a', 788 788 'phabricator-nav-view-css' => 'b29426e9', 789 789 'phabricator-notification' => 'ccf1cbf8', 790 790 'phabricator-notification-css' => '3f6c89c9', 791 - 'phabricator-notification-menu-css' => 'f31c0bde', 791 + 'phabricator-notification-menu-css' => 'b3ab500d', 792 792 'phabricator-object-selector-css' => '85ee8ce6', 793 793 'phabricator-phtize' => 'd254d646', 794 794 'phabricator-prefab' => 'cfd23f37', ··· 797 797 'phabricator-shaped-request' => '7cbe244b', 798 798 'phabricator-slowvote-css' => 'a94b7230', 799 799 'phabricator-source-code-view-css' => 'cbeef983', 800 - 'phabricator-standard-page-view' => 'e709f6d0', 800 + 'phabricator-standard-page-view' => '99a7d403', 801 801 'phabricator-textareautils' => '320810c8', 802 802 'phabricator-title' => 'df5e11d2', 803 803 'phabricator-tooltip' => '6323f942', ··· 812 812 'phabricator-uiexample-reactor-select' => 'a155550f', 813 813 'phabricator-uiexample-reactor-sendclass' => '1def2711', 814 814 'phabricator-uiexample-reactor-sendproperties' => 'b1f0ccee', 815 - 'phabricator-zindex-css' => '5b6fcf3f', 815 + 'phabricator-zindex-css' => '2b01a823', 816 816 'phame-css' => '8efb0729', 817 817 'pholio-css' => 'ca89d380', 818 818 'pholio-edit-css' => '07676f51', ··· 870 870 'phui-timeline-view-css' => 'bc523970', 871 871 'phui-two-column-view-css' => '5afdf637', 872 872 'phui-workboard-color-css' => 'ac6fe6a7', 873 - 'phui-workboard-view-css' => 'e6d89647', 873 + 'phui-workboard-view-css' => 'bda3ef58', 874 874 'phui-workcard-view-css' => '0c62d7c5', 875 875 'phui-workpanel-view-css' => '92197373', 876 876 'phuix-action-list-view' => 'b5c256b8', ··· 931 931 'javelin-dom', 932 932 'phabricator-keyboard-shortcut', 933 933 ), 934 - '031cee25' => array( 935 - 'javelin-behavior', 936 - 'javelin-request', 937 - 'javelin-stratcom', 938 - 'javelin-vector', 939 - 'javelin-dom', 940 - 'javelin-uri', 941 - 'javelin-behavior-device', 942 - 'phabricator-title', 943 - ), 944 934 '05270951' => array( 945 935 'javelin-util', 946 936 'javelin-magical-init', ··· 1164 1154 'javelin-dom', 1165 1155 'javelin-magical-init', 1166 1156 ), 1167 - '3b0d39f7' => array( 1168 - 'phui-theme-css', 1169 - ), 1170 1157 '3cb0b2fc' => array( 1171 1158 'javelin-behavior', 1172 1159 'javelin-dom', ··· 1241 1228 'javelin-behavior', 1242 1229 'javelin-dom', 1243 1230 'javelin-stratcom', 1231 + ), 1232 + '49e20786' => array( 1233 + 'javelin-behavior', 1234 + 'javelin-request', 1235 + 'javelin-stratcom', 1236 + 'javelin-vector', 1237 + 'javelin-dom', 1238 + 'javelin-uri', 1239 + 'javelin-behavior-device', 1240 + 'phabricator-title', 1244 1241 ), 1245 1242 '4a021c10' => array( 1246 1243 'javelin-install', ··· 2096 2093 ), 2097 2094 'e6e25838' => array( 2098 2095 'javelin-install', 2096 + ), 2097 + 'e862571a' => array( 2098 + 'phui-theme-css', 2099 2099 ), 2100 2100 'e9581f08' => array( 2101 2101 'javelin-behavior',
+2
src/__phutil_library_map__.php
··· 2170 2170 'PhabricatorConfigHistoryController' => 'applications/config/controller/PhabricatorConfigHistoryController.php', 2171 2171 'PhabricatorConfigIgnoreController' => 'applications/config/controller/PhabricatorConfigIgnoreController.php', 2172 2172 'PhabricatorConfigIssueListController' => 'applications/config/controller/PhabricatorConfigIssueListController.php', 2173 + 'PhabricatorConfigIssuePanelController' => 'applications/config/controller/PhabricatorConfigIssuePanelController.php', 2173 2174 'PhabricatorConfigIssueViewController' => 'applications/config/controller/PhabricatorConfigIssueViewController.php', 2174 2175 'PhabricatorConfigJSON' => 'applications/config/json/PhabricatorConfigJSON.php', 2175 2176 'PhabricatorConfigJSONOptionType' => 'applications/config/custom/PhabricatorConfigJSONOptionType.php', ··· 6915 6916 'PhabricatorConfigHistoryController' => 'PhabricatorConfigController', 6916 6917 'PhabricatorConfigIgnoreController' => 'PhabricatorConfigController', 6917 6918 'PhabricatorConfigIssueListController' => 'PhabricatorConfigController', 6919 + 'PhabricatorConfigIssuePanelController' => 'PhabricatorConfigController', 6918 6920 'PhabricatorConfigIssueViewController' => 'PhabricatorConfigController', 6919 6921 'PhabricatorConfigJSON' => 'Phobject', 6920 6922 'PhabricatorConfigJSONOptionType' => 'PhabricatorConfigOptionType',
+1
src/applications/config/application/PhabricatorConfigApplication.php
··· 55 55 => 'PhabricatorConfigIgnoreController', 56 56 'issue/' => array( 57 57 '' => 'PhabricatorConfigIssueListController', 58 + 'panel/' => 'PhabricatorConfigIssuePanelController', 58 59 '(?P<key>[^/]+)/' => 'PhabricatorConfigIssueViewController', 59 60 ), 60 61 'cache/' => array(
+68
src/applications/config/controller/PhabricatorConfigIssuePanelController.php
··· 1 + <?php 2 + 3 + final class PhabricatorConfigIssuePanelController 4 + extends PhabricatorConfigController { 5 + 6 + public function handleRequest(AphrontRequest $request) { 7 + $viewer = $request->getViewer(); 8 + $open_items = PhabricatorSetupCheck::getOpenSetupIssueKeys(); 9 + $issues = PhabricatorSetupCheck::runAllChecks(); 10 + PhabricatorSetupCheck::setOpenSetupIssueKeys( 11 + PhabricatorSetupCheck::getUnignoredIssueKeys($issues), 12 + $update_database = true); 13 + 14 + if ($issues) { 15 + require_celerity_resource('phabricator-notification-menu-css'); 16 + 17 + $items = array(); 18 + foreach ($issues as $issue) { 19 + $classes = array(); 20 + $classes[] = 'phabricator-notification'; 21 + if ($issue->getIsIgnored()) { 22 + $classes[] = 'phabricator-notification-read'; 23 + } else { 24 + $classes[] = 'phabricator-notification-unread'; 25 + } 26 + $uri = '/config/issue/'.$issue->getIssueKey().'/'; 27 + $title = $issue->getName(); 28 + $summary = $issue->getSummary(); 29 + $items[] = javelin_tag( 30 + 'div', 31 + array( 32 + 'class' => implode(' ', $classes), 33 + 'sigil' => 'notification', 34 + 'meta' => array( 35 + 'href' => $uri, 36 + ), 37 + ), 38 + $title); 39 + } 40 + $content = phutil_tag_div('setup-issue-menu', $items); 41 + } else { 42 + $content = phutil_tag_div( 43 + 'phabricator-notification no-notifications', 44 + pht('You have no unresolved setup issues.')); 45 + } 46 + 47 + $content = hsprintf( 48 + '<div class="phabricator-notification-header">%s</div>'. 49 + '%s', 50 + phutil_tag( 51 + 'a', 52 + array( 53 + 'href' => '/config/issue/', 54 + ), 55 + pht('Unresolved Setup Issues')), 56 + $content); 57 + 58 + $unresolved_count = count($open_items); 59 + 60 + $json = array( 61 + 'content' => $content, 62 + 'number' => (int)$unresolved_count, 63 + ); 64 + 65 + return id(new AphrontAjaxResponse())->setContent($json); 66 + } 67 + 68 + }
-5
src/infrastructure/internationalization/translation/PhabricatorUSEnglishTranslation.php
··· 538 538 'PHP also loaded these configuration files:', 539 539 ), 540 540 541 - 'You have %d unresolved setup issue(s)...' => array( 542 - 'You have an unresolved setup issue...', 543 - 'You have %d unresolved setup issues...', 544 - ), 545 - 546 541 '%s added %d inline comment(s).' => array( 547 542 array( 548 543 '%s added an inline comment.',
-19
src/view/page/PhabricatorStandardPageView.php
··· 459 459 'or the error log.')); 460 460 } 461 461 462 - // Render the "you have unresolved setup issues..." warning. 463 - $setup_warning = null; 464 - if ($user && $user->getIsAdmin()) { 465 - $open = PhabricatorSetupCheck::getOpenSetupIssueKeys(); 466 - if ($open) { 467 - $classes[] = 'page-has-warning'; 468 - $setup_warning = phutil_tag_div( 469 - 'setup-warning-callout', 470 - phutil_tag( 471 - 'a', 472 - array( 473 - 'href' => '/config/issue/', 474 - 'title' => implode(', ', $open), 475 - ), 476 - pht('You have %d unresolved setup issue(s)...', count($open)))); 477 - } 478 - } 479 - 480 462 $main_page = phutil_tag( 481 463 'div', 482 464 array( ··· 486 468 array( 487 469 $developer_warning, 488 470 $header_chrome, 489 - $setup_warning, 490 471 phutil_tag( 491 472 'div', 492 473 array(
+85
src/view/page/menu/PhabricatorMainMenuView.php
··· 531 531 ''); 532 532 } 533 533 534 + // Admin Level Urgent Notification Channel 535 + $setup_tag = ''; 536 + $setup_notification_dropdown = ''; 537 + if ($viewer && $viewer->getIsAdmin()) { 538 + $open = PhabricatorSetupCheck::getOpenSetupIssueKeys(); 539 + if ($open) { 540 + $setup_id = celerity_generate_unique_node_id(); 541 + $setup_count_id = celerity_generate_unique_node_id(); 542 + $setup_dropdown_id = celerity_generate_unique_node_id(); 543 + 544 + $setup_count_number = count($open); 545 + 546 + if ($setup_count_number) { 547 + $aural[] = phutil_tag( 548 + 'a', 549 + array( 550 + 'href' => '/config/issue/', 551 + ), 552 + pht( 553 + '%s unresolved issues.', 554 + new PhutilNumber($setup_count_number))); 555 + } else { 556 + $aural[] = pht('No issues.'); 557 + } 558 + 559 + $setup_count_tag = phutil_tag( 560 + 'span', 561 + array( 562 + 'id' => $setup_count_id, 563 + 'class' => 'phabricator-main-menu-setup-count', 564 + ), 565 + $setup_count_number); 566 + 567 + $setup_icon_tag = javelin_tag( 568 + 'span', 569 + array( 570 + 'class' => 'phabricator-main-menu-setup-icon phui-icon-view '. 571 + 'phui-font-fa fa-exclamation-circle', 572 + 'sigil' => 'menu-icon', 573 + ), 574 + ''); 575 + 576 + if ($setup_count_number) { 577 + $container_classes[] = 'setup-unread'; 578 + } 579 + 580 + $setup_tag = phutil_tag( 581 + 'a', 582 + array( 583 + 'href' => '/config/issue/', 584 + 'class' => implode(' ', $container_classes), 585 + 'id' => $setup_id, 586 + ), 587 + array( 588 + $setup_icon_tag, 589 + $setup_count_tag, 590 + )); 591 + 592 + Javelin::initBehavior( 593 + 'aphlict-dropdown', 594 + array( 595 + 'bubbleID' => $setup_id, 596 + 'countID' => $setup_count_id, 597 + 'dropdownID' => $setup_dropdown_id, 598 + 'loadingText' => pht('Loading...'), 599 + 'uri' => '/config/issue/panel/', 600 + 'countType' => null, 601 + 'countNumber' => null, 602 + 'unreadClass' => 'setup-unread', 603 + )); 604 + 605 + $setup_notification_dropdown = javelin_tag( 606 + 'div', 607 + array( 608 + 'id' => $setup_dropdown_id, 609 + 'class' => 'phabricator-notification-menu', 610 + 'sigil' => 'phabricator-notification-menu', 611 + 'style' => 'display: none;', 612 + ), 613 + ''); 614 + } 615 + } 616 + 534 617 $dropdowns = array( 535 618 $notification_dropdown, 536 619 $message_notification_dropdown, 620 + $setup_notification_dropdown, 537 621 ); 538 622 539 623 return array( 540 624 array( 541 625 $bubble_tag, 542 626 $message_tag, 627 + $setup_tag, 543 628 ), 544 629 $dropdowns, 545 630 $aural,
+26 -5
webroot/rsrc/css/application/base/main-menu-view.css
··· 376 376 } 377 377 378 378 .phabricator-main-menu-alert-icon, 379 - .phabricator-main-menu-message-icon { 379 + .phabricator-main-menu-message-icon, 380 + .phabricator-main-menu-setup-icon { 380 381 width: 18px; 381 382 height: 18px; 382 383 float: left; ··· 396 397 margin-top: 2px; 397 398 } 398 399 400 + .setup-unread .phui-icon-view.phabricator-main-menu-setup-icon { 401 + color: #ecf36c; 402 + font-size: 16px; 403 + margin-top: 2px; 404 + width: 15px; 405 + } 406 + 407 + .setup-unread .phabricator-main-menu-setup-count { 408 + color: #ecf36c; 409 + margin-top: 10px; 410 + } 411 + 412 + .device-desktop .alert-notifications.setup-unread:hover .phui-icon-view { 413 + color: #ecf36c; 414 + } 415 + 399 416 .phabricator-main-menu-alert-count, 400 - .phabricator-main-menu-message-count { 417 + .phabricator-main-menu-message-count, 418 + .phabricator-main-menu-setup-count { 401 419 color: #fff; 402 420 text-align: center; 403 421 display: none; ··· 407 425 } 408 426 409 427 .device-phone .alert-unread .phabricator-main-menu-alert-count, 410 - .device-phone .message-unread .phabricator-main-menu-message-count { 428 + .device-phone .message-unread .phabricator-main-menu-message-count, 429 + .device-phone .setup-unread .phabricator-main-menu-setup-count { 411 430 display: none; 412 431 } 413 432 414 433 .alert-unread .phabricator-main-menu-alert-icon, 415 - .message-unread .phabricator-main-menu-message-icon { 434 + .message-unread .phabricator-main-menu-message-icon, 435 + .setup-unread .phabricator-main-menu-setup-icon { 416 436 color: #fff; 417 437 } 418 438 419 439 .alert-unread .phabricator-main-menu-alert-count, 420 - .message-unread .phabricator-main-menu-message-count { 440 + .message-unread .phabricator-main-menu-message-count, 441 + .setup-unread .phabricator-main-menu-setup-count { 421 442 display: block; 422 443 } 423 444
+4 -1
webroot/rsrc/css/application/base/notification-menu.css
··· 37 37 top: 42px !important; 38 38 left: 3% !important; 39 39 position: absolute; 40 - 41 40 } 42 41 43 42 .phabricator-notification-list.pm { ··· 76 75 .phabricator-notification-list .phabricator-notification-unread, 77 76 .phabricator-notification-menu .phabricator-notification-unread { 78 77 background: {$hoverblue}; 78 + } 79 + 80 + .phabricator-notification-read { 81 + color: {$lightgreytext}; 79 82 } 80 83 81 84 .phabricator-notification-header {
-11
webroot/rsrc/css/application/base/standard-page-view.css
··· 105 105 font-size: {$smallerfontsize}; 106 106 } 107 107 108 - .setup-warning-callout { 109 - padding: 8px 16px; 110 - background: {$lightred}; 111 - border-bottom: 1px solid {$sh-redborder}; 112 - position: relative; 113 - } 114 - 115 - .setup-warning-callout a { 116 - color: {$red}; 117 - } 118 - 119 108 .phui-handle .phui-icon-view { 120 109 display: inline-block; 121 110 margin: 2px 2px -2px 0;
-4
webroot/rsrc/css/application/conpherence/menu.css
··· 11 11 background: #fff; 12 12 } 13 13 14 - .page-has-warning .conpherence-layout { 15 - top: 76px; 16 - } 17 - 18 14 .conpherence-layout .conpherence-no-threads { 19 15 text-align: center; 20 16 position: fixed;
-4
webroot/rsrc/css/application/conpherence/message-pane.css
··· 65 65 bottom: 42px; 66 66 } 67 67 68 - .page-has-warning .conpherence-message-pane .conpherence-messages { 69 - top: 110px; 70 - } 71 - 72 68 .conpherence-messages.jx-scrollbar-frame { 73 69 overflow-y: hidden; 74 70 }
-10
webroot/rsrc/css/application/conpherence/widget-pane.css
··· 15 15 overflow-y: auto; 16 16 -webkit-overflow-scrolling: touch; 17 17 } 18 - 19 - .page-has-warning .conpherence-widget-pane, 20 - .page-had-warning .loading .widgets-loading-mask { 21 - top: 110px; 22 - } 23 - 24 18 .device .conpherence-widget-pane, 25 19 .device .loading .widgets-loading-mask { 26 20 top: 44px; ··· 89 83 .device-desktop .conpherence-widget-pane .widgets-body { 90 84 top: 111px; 91 85 width: 240px; 92 - } 93 - 94 - .device-desktop .page-has-warning .conpherence-widget-pane .widgets-body { 95 - top: 142px; 96 86 } 97 87 98 88 .conpherence-widget-pane .widget-icon {
-4
webroot/rsrc/css/core/z-index.css
··· 68 68 z-index: 4; 69 69 } 70 70 71 - .setup-warning-callout { 72 - z-index: 5; 73 - } 74 - 75 71 .loading .messages-loading-mask, 76 72 .loading .widgets-loading-mask { 77 73 z-index: 5;
-4
webroot/rsrc/css/phui/workboards/phui-workboard.css
··· 22 22 background-color: #fff; 23 23 } 24 24 25 - .device-desktop .page-has-warning .phui-workboard-view-shadow { 26 - top: 113px; 27 - } 28 - 29 25 .device-desktop.with-durable-column .phui-workboard-view-shadow { 30 26 right: 300px; 31 27 }
+8 -2
webroot/rsrc/js/application/aphlict/behavior-aphlict-dropdown.js
··· 26 26 var request = null; 27 27 var dirty = config.local ? false : true; 28 28 29 - JX.Title.setCount(config.countType, config.countNumber); 29 + if (config.countType) { 30 + JX.Title.setCount(config.countType, config.countNumber); 31 + } 30 32 31 33 function _updateCount(number) { 32 - JX.Title.setCount(config.countType, number); 34 + if (config.countType) { 35 + JX.Title.setCount(config.countType, number); 36 + } else { 37 + return; 38 + } 33 39 34 40 JX.DOM.setContent(count, number); 35 41 if (number === 0) {