Looks like https://we.phorge.it/source/phorge/browse/master/src/infrastructure/query/policy/PhabricatorCursorPagedPolicyAwareQuery.php$2118-2125 and https://we.phorge.it/source/phorge/browse/master/src/infrastructure/query/policy/PhabricatorCursorPagedPolicyAwareQuery.php$2499-2506 already do this silently but only for JOIN clauses.
- Queries
- All Stories
- Search
- Advanced Search
- Transactions
- Transaction Logs
All Stories
Mon, Jun 2
Hi, please explain specifically what "support for large monitors" means to you.
Large monitors are "supported" as all the content on a Phorge page is correctly displayed, layouted, readable on large monitors, as your screenshot proves. :)
Hi!
I agree that this is not a problem and it does not prevent me from explicitly using the features of the service, but for convenience, it would be good if there was support for large monitors.
Yes, it is possible to use a browser that does not cover the entire width of the monitor, but this is not very convenient for me personally, since other sites support such a diagonal of the monitor, which allows me to better read and write texts, code, and so on.
If you think that it is not worth adding support for such a diagonal, then I agree, since so far few people use such large diagonals. Personally, it wouldn't hurt for me to use phorge on my server.
Hi, could you please describe actual problems due to the current layout? Free space is not an issue per-se, for example limiting the content width makes sense.
I'm also a bit wondering why you would put/use the browser full screen when having such a ratio?
Sun, Jun 1
diff --git a/src/view/phui/PHUIObjectBoxView.php b/src/view/phui/PHUIObjectBoxView.php index dce9d57568..13a0a3d061 100644 --- a/src/view/phui/PHUIObjectBoxView.php +++ b/src/view/phui/PHUIObjectBoxView.php @@ -318,6 +318,10 @@ final class PHUIObjectBoxView extends AphrontTagView { $lists, $this->table, $pager, + // When the anchor link scrolled us below the $showhide search parameters + // box, repeat the error message hidden and unseen at the top of the page + ($this->showHideOpen == true ? $this->formErrors : null), $this->renderChildren(), );
^ This would simply be ugly repeating of the error message below the search params box on http://phorge.localhost/maniphest/query/advanced/.
For testing the patch behavior with a results list, replace the line
($this->showHideOpen == true ? $this->formErrors : null),
with
($this->showHideOpen == true ? $header : null),
Before and after Chromium Lighthouse a11y result comparison of some Phorge pages for patches I'm going to attach.
(Goodhart's Law applies, as with any misguiding incentives.)
More docs yuum
Sat, May 31
Also nothing seems to use these functions?:
[acko@fedora phorge]$ grep -r compileLiteralQuery . ./phorge/src/applications/search/compiler/__tests__/PhutilSearchQueryCompilerTestCase.php: $literal_query = $compiler->compileLiteralQuery($tokens); ./phorge/src/applications/search/compiler/PhutilSearchQueryCompiler.php: public function compileLiteralQuery(array $tokens) { [acko@fedora phorge]$ grep -r compileStemmedQuery . ./phorge/src/applications/search/compiler/__tests__/PhutilSearchQueryCompilerTestCase.php: $stemmed_query = $compiler->compileStemmedQuery($tokens); ./phorge/src/applications/search/compiler/PhutilSearchQueryCompiler.php: public function compileStemmedQuery(array $tokens) {
Nice find. Applying this patch removes about 250 errors in phpstan output here.
In D26040#27816, @aklapper wrote:Keeping it protected will throw Protected method PhageExecWorkflow::runWorkflow() overriding public method ArcanistWorkflow::runWorkflow() should also be public.
Running phpstan analyse, before this patch I get Call to an undefined method ArcanistWorkflow::runWorkflow(), after this patch I get Method ArcanistWorkflow::runWorkflow() invoked with 1 parameter, 0 required, both in src/workflow/ArcanistWorkflow.php:227. That looks like an improvement indeed.
(This seems nice) Small question: Does it still work for you keeping the method as protected instead of public?
Fri, May 30
Get rid of coverage errors :)
Yes to the idea however a related elephant in the room (IMHO) are those non-standard types like list or map or wild being replaced, no clue if that has any effects on...something™ (Diviner docs? Code?) as I haven't managed to understand the consequences of code in https://we.phorge.it/source/arcanist/browse/master/src/parser/PhutilTypeSpec.php yet. (Technically speaking map and list seem to be just arrays, indeed.)
This isn't important, it just seems like this is a nice in-context place to leave this information :)
Use R[] because the keys may not be sequential.
Hmm.. clearly I need to set xdebug.mode correctly, but I'm not sure why it wasn't. It's been fine before.
Correct, my instance is running the current stable branch HEAD, which is 2024.35. I did notice that the last 5 were already fixed, and I searched for existing issues, but missed T15824 sorry.
Thu, May 29
Looking at src/applications/repository/storage/PhabricatorRepository.php I see stuff like $has_shortname = ($this->getRepositorySlug() !== null); so it seems that a repository "slug" is what the UI calls a "short name". That's also seconded by code in DiffusionRepositoryEditEngine.
Copying from Q182:
PhabricatorEditorURIEngine.php:283, occurrences: 4 preg_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated arcanist(head=stable, ref.master=989690868513, ref.stable=05abd055019c), libphremoteuser(head=clarion, ref.master=944307decd9c, ref.clarion=d0da6c048bd5), phorge(head=stable, custom=4), translations(head=wmf/stable, ref.wmf/stable=76bb64361cec) #0 preg_replace(string, string, NULL) called at [<phorge>/src/infrastructure/editor/PhabricatorEditorURIEngine.php:283] #1 PhabricatorEditorURIEngine::escapeToken(NULL) called at [<phorge>/src/infrastructure/editor/PhabricatorEditorURIEngine.php:144] #2 PhabricatorEditorURIEngine::newURITokensForRepository() called at [<phorge>/src/infrastructure/editor/PhabricatorEditorURIEngine.php:128] #3 PhabricatorEditorURIEngine::getURITokensForRepository(string) called at [<phorge>/src/infrastructure/editor/PhabricatorEditorURIEngine.php:84] #4 PhabricatorEditorURIEngine::getURITokensForPath(string) called at [<phorge>/src/applications/differential/view/DifferentialChangesetDetailView.php:371] #5 DifferentialChangesetDetailView::getEditorURITemplate() called at [<phorge>/src/applications/differential/view/DifferentialChangesetDetailView.php:272] #6 DifferentialChangesetDetailView::render() called at [<phorge>/src/applications/differential/view/DifferentialChangesetListView.php:240] #7 DifferentialChangesetListView::render() called at [<phorge>/src/view/AphrontView.php:222] #8 AphrontView::producePhutilSafeHTML() called at [<phorge>/src/infrastructure/markup/render.php:115] #9 phutil_escape_html(DifferentialChangesetListView) called at [<phorge>/src/infrastructure/markup/render.php:139] #10 phutil_escape_html(array) called at [<phorge>/src/infrastructure/markup/render.php:139] #11 phutil_escape_html(array) called at [<phorge>/src/infrastructure/markup/render.php:97] #12 phutil_tag(string, array, array) called at [<phorge>/src/view/phui/PHUITwoColumnView.php:236] #13 PHUITwoColumnView::buildFooter() called at [<phorge>/src/view/phui/PHUITwoColumnView.php:123] #14 PHUITwoColumnView::getTagContent() called at [<phorge>/src/view/AphrontTagView.php:161] #15 AphrontTagView::render() called at [<phorge>/src/view/AphrontView.php:222] #16 AphrontView::producePhutilSafeHTML() called at [<phorge>/src/infrastructure/markup/render.php:115] #17 phutil_escape_html(PHUITwoColumnView) called at [<phorge>/src/infrastructure/markup/render.php:139] #18 phutil_escape_html(array) called at [<phorge>/src/infrastructure/markup/render.php:139] #19 phutil_escape_html(array) called at [<phorge>/src/infrastructure/markup/render.php:97] #20 phutil_tag(string, array, array) called at [<phorge>/src/view/formation/PHUIFormationContentView.php:13] #21 PHUIFormationContentView::render() called at [<phorge>/src/view/AphrontView.php:222] #22 AphrontView::producePhutilSafeHTML() called at [<phorge>/src/infrastructure/markup/render.php:115] #23 phutil_escape_html(PHUIFormationContentView) called at [<phorge>/src/infrastructure/markup/render.php:139] #24 phutil_escape_html(array) called at [<phorge>/src/infrastructure/markup/render.php:97] #25 phutil_tag(string, array, array) called at [<phorge>/src/view/formation/PHUIFormationView.php:58] #26 PHUIFormationView::render() called at [<phorge>/src/view/AphrontView.php:222] #27 AphrontView::producePhutilSafeHTML() called at [<phorge>/src/infrastructure/markup/render.php:115] #28 phutil_escape_html(PHUIFormationView) called at [<phorge>/src/infrastructure/markup/render.php:171] #29 phutil_implode_html(string, array) called at [<phorge>/src/view/page/PhabricatorBarePageView.php:58] #30 PhabricatorBarePageView::willRenderPage() called at [<phorge>/src/view/page/PhabricatorStandardPageView.php:217] #31 PhabricatorStandardPageView::willRenderPage() called at [<phorge>/src/view/page/AphrontPageView.php:46] #32 AphrontPageView::render() called at [<phorge>/src/view/page/PhabricatorStandardPageView.php:918] #33 PhabricatorStandardPageView::produceAphrontResponse() called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:724] #34 AphrontApplicationConfiguration::produceResponse(AphrontRequest, PhabricatorStandardPageView) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:299] #35 AphrontApplicationConfiguration::processRequest(AphrontRequest, PhutilDeferredLog, AphrontPHPHTTPSink, MultimeterControl) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:203] #36 AphrontApplicationConfiguration::runHTTPRequest(AphrontPHPHTTPSink) called at [<phorge>/webroot/index.php:35]
Thanks! Oh true I was forget the default fallback option... ah well I guess not a huge difference performance wise plus null feels cleaner to me :)