1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-25 16:22:43 +01:00
Commit graph

17361 commits

Author SHA1 Message Date
Andre Klapper
dff04ba91d Fix some PHP 8.1 "strlen(null)" exceptions which block rendering a project page
Summary:
`strlen()` was used in Phabricator to check if a generic value is a non-empty string.
This behavior is deprecated since PHP 8.1. Phorge adopts `phutil_nonempty_string()` as a replacement.

Note: this may highlight other absurd input values that might be worth correcting
instead of just ignoring. If phutil_nonempty_string() throws an exception in your
instance, report it to Phorge to evaluate and fix that specific corner case.

Closes T15313

Test Plan:
Applied these three changes (with D25144, D25145, D25146, D25147, D25151,
D25152, D25153 on top).
Afterwards end up with the unresolved exception covered by T15263.

Reviewers: O1 Blessed Committers, valerio.bozzolan

Reviewed By: O1 Blessed Committers, valerio.bozzolan

Subscribers: speck, tobiaswiese, valerio.bozzolan, Matthew, Cigaryno

Maniphest Tasks: T15313

Differential Revision: https://we.phorge.it/D25163
2023-05-01 22:26:27 +02:00
Andre Klapper
4d88095f2a Fix PHP 8.1 "strlen(null)" exception which blocks rendering the Projects page (and log alien values)
Summary:
`strlen()` was used in Phabricator to check if a generic value is a non-empty string.
This behavior is deprecated since PHP 8.1. Phorge adopts `phutil_nonempty_string()` as
a general replacement.

In this specific case we use `phutil_nonempty_stringlike()` since we are not sure
if the variable `href` should be just a string or other objects.

In order not to leave these cases to chance, we have added a log line, which can be
removed in the future.

Note: this may highlight other absurd input values that might be worth correcting
instead of just ignoring. If phutil_nonempty_string() throws an exception in your
instance, report it to Phorge to evaluate and fix that specific corner case.

Closes T15303
Ref T15316

Test Plan:
Applied this change (on top of D25144, D25145, D25146, D25147, D25150,
D25142) and `/project/` rendered in web browser.

Reviewers: O1 Blessed Committers, valerio.bozzolan

Reviewed By: O1 Blessed Committers, valerio.bozzolan

Subscribers: avivey, speck, tobiaswiese, valerio.bozzolan, Matthew, Cigaryno

Maniphest Tasks: T15303, T15316

Differential Revision: https://we.phorge.it/D25153
2023-05-01 22:22:48 +02:00
Andre Klapper
b44665aefe Fix PHP 8.1 "strlen(null)" exception which blocks rendering Notifications' Advanced Search page
Summary:
`strlen()` was used in Phabricator to check if a generic value is a non-empty string.
This behavior is deprecated since PHP 8.1. Phorge adopts `phutil_nonempty_string()` as a replacement.

Note: this may highlight other absurd input values that might be worth correcting
instead of just ignoring. If phutil_nonempty_string() throws an exception in your
instance, report it to Phorge to evaluate and fix that specific corner case.

Closes T15320

Test Plan: Applied this change and `/notification/query/advanced/` rendered in web browser.

Reviewers: O1 Blessed Committers, valerio.bozzolan

Reviewed By: O1 Blessed Committers, valerio.bozzolan

Subscribers: speck, tobiaswiese, valerio.bozzolan, Matthew, Cigaryno

Maniphest Tasks: T15320

Differential Revision: https://we.phorge.it/D25169
2023-05-01 22:18:44 +02:00
Andre Klapper
63647f41f8 Fix PHP 8.1 "strlen(null)" exception[s] which blocks rendering External Editor user settings page
Summary:
`strlen()` was used in Phabricator to check if a generic value is a non-empty string.
This behavior is deprecated since PHP 8.1. Phorge adopts `phutil_nonempty_string()` as a replacement.

Note: this may highlight other absurd input values that might be worth correcting
instead of just ignoring. If phutil_nonempty_string() throws an exception in your
instance, report it to Phorge to evaluate and fix that specific corner case.

Closes T15310

Test Plan:
Applied this change (on top of D25144, D25145, D25146, D25147, D25151,
D25152, D25153) and `/settings/panel/editor/` correctly rendered in web browser.

Reviewers: O1 Blessed Committers, valerio.bozzolan

Reviewed By: O1 Blessed Committers, valerio.bozzolan

Subscribers: speck, tobiaswiese, valerio.bozzolan, Matthew, Cigaryno

Maniphest Tasks: T15310

Differential Revision: https://we.phorge.it/D25160
2023-05-01 22:13:54 +02:00
Andre Klapper
255325bd04 Fix PHP 8.1 "strlen(null)" exception which blocks rendering user's Edit Profile page
Summary:
`strlen()` was used in Phabricator to check if a generic value is a non-empty string.
This behavior is deprecated since PHP 8.1. Phorge adopts `phutil_nonempty_string()` as a replacement.

Note: this may highlight other absurd input values that might be worth correcting
instead of just ignoring. If phutil_nonempty_string() throws an exception in your
instance, report it to Phorge to evaluate and fix that specific corner case.

Closes T15319

Test Plan:
Applied this change (on top of D25147, D25153, D25167) and
`/people/editprofile/userid/` finally rendered in web browser.

Reviewers: O1 Blessed Committers, valerio.bozzolan

Reviewed By: O1 Blessed Committers, valerio.bozzolan

Subscribers: speck, tobiaswiese, valerio.bozzolan, Matthew, Cigaryno

Maniphest Tasks: T15319

Differential Revision: https://we.phorge.it/D25168
2023-05-01 22:05:37 +02:00
Andre Klapper
9aa8d09d31 Fix PHP 8.1 "strlen(null)" exceptions which block rendering the People page of a user
Summary:
`strlen()` was used in Phabricator to check if a generic value is a non-empty string.
This behavior is deprecated since PHP 8.1. Phorge adopts `phutil_nonempty_string()` as a replacement.

Note: this may highlight other absurd input values that might be worth correcting
instead of just ignoring. If phutil_nonempty_string() throws an exception in your
instance, report it to Phorge to evaluate and fix that specific corner case.

Closes T15318

Test Plan:
Applied these five changes on top of D25147 and D25153, and both `/p/username/`
and `/people/manage/userid/` finally rendered in web browser.

Reviewers: O1 Blessed Committers, valerio.bozzolan

Reviewed By: O1 Blessed Committers, valerio.bozzolan

Subscribers: speck, tobiaswiese, valerio.bozzolan, Matthew, Cigaryno

Maniphest Tasks: T15318

Differential Revision: https://we.phorge.it/D25167
2023-05-01 22:03:41 +02:00
Andre Klapper
5a76e8d262 Fix PHP 8.1 "strlen(null)" exception which blocks loading icons when creating new Diffusion repository
Summary:
`strlen()` was used in Phabricator to check if a generic value is a non-empty string.
This behavior is deprecated since PHP 8.1. Phorge adopts `phutil_nonempty_string()` as a replacement.

Note: this may highlight other absurd input values that might be worth correcting
instead of just ignoring. If phutil_nonempty_string() throws an exception in your
instance, report it to Phorge to evaluate and fix that specific corner case.

Closes T15301

Test Plan: Applied this change (on top of D25150) and icons rendered in web browser.

Reviewers: O1 Blessed Committers, valerio.bozzolan

Reviewed By: O1 Blessed Committers, valerio.bozzolan

Subscribers: speck, tobiaswiese, valerio.bozzolan, Matthew, Cigaryno

Maniphest Tasks: T15301

Differential Revision: https://we.phorge.it/D25151
2023-05-01 22:01:41 +02:00
Andre Klapper
6e88528370 Fix PHP 8.1 "strlen(null)" exception which blocks rendering list of Active/All projects
Summary:
`strlen()` was used in Phabricator to check if a generic value is a non-empty string.
This behavior is deprecated since PHP 8.1. Phorge adopts `phutil_nonempty_string()` as a replacement.

Note: this may highlight other absurd input values that might be worth correcting
instead of just ignoring. If phutil_nonempty_string() throws an exception in your
instance, report it to Phorge to evaluate and fix that specific corner case.

Closes T15312

Test Plan:
Applied this change (on top of D25144, D25145, D25146, D25147, D25151, D25152, D25153 and `/project/query/active/` rendered correctly in web browser.

Tested surfing various pages with and without Maniphest's `maniphest.subtypes`.

If you need some example custom fields, this is an example:

```
[
    {
      "key": "default",
      "name": "Task"
    },
    {
      "key": "bug",
      "name": "Bug"
    },
    {
      "key": "log",
      "name": "LogSpam"
    },
    {
      "key": "deadline",
      "name": "Deadline"
    }
  ]
```

Reviewers: O1 Blessed Committers, valerio.bozzolan

Reviewed By: O1 Blessed Committers, valerio.bozzolan

Subscribers: speck, tobiaswiese, valerio.bozzolan, Matthew, Cigaryno

Maniphest Tasks: T15312

Differential Revision: https://we.phorge.it/D25162
2023-05-01 15:55:42 +02:00
Andre Klapper
313d3b7bf2 Fix PHP 8.1 "strlen(null)" exceptions which block rendering the Maniphest task creation page
Summary:
`strlen()` was used in Phabricator to check if a generic value is a non-empty string.
This behavior is deprecated since PHP 8.1. Phorge adopts `phutil_nonempty_string()` as a replacement.

Note: this may highlight other absurd input values that might be worth correcting
instead of just ignoring. If phutil_nonempty_string() throws an exception in your
instance, report it to Phorge to evaluate and fix that specific corner case.

Closes T15302

Test Plan:
Applied these five changes (on top of D25144, D25145, D25146, D25147, D25151)
and `/maniphest/task/edit/form/default/` finally rendered in web browser.

Reviewers: O1 Blessed Committers, valerio.bozzolan

Reviewed By: O1 Blessed Committers, valerio.bozzolan

Subscribers: speck, tobiaswiese, valerio.bozzolan, Matthew, Cigaryno

Maniphest Tasks: T15302

Differential Revision: https://we.phorge.it/D25152
2023-05-01 15:52:23 +02:00
Andre Klapper
bccd4f5981 Fix PHP 8.1 "strlen(null)" exceptions which block rendering the Dashboard page
Summary:
`strlen()` was used in Phabricator to check if a generic value is a non-empty string.
This behavior is deprecated since PHP 8.1. Phorge adopts `phutil_nonempty_string()` as a replacement.

Note: this may highlight other absurd input values that might be worth correcting
instead of just ignoring. If phutil_nonempty_string() throws an exception in your
instance, report it to Phorge to evaluate and fix that specific corner case.

Closes T15295

Test Plan: Applied these four changes (on top of D25144 and D25145) and `/dashboard/` finally rendered in web browser.

Reviewers: O1 Blessed Committers, valerio.bozzolan

Reviewed By: O1 Blessed Committers, valerio.bozzolan

Subscribers: speck, tobiaswiese, valerio.bozzolan, Matthew, Cigaryno

Maniphest Tasks: T15295

Differential Revision: https://we.phorge.it/D25146
2023-05-01 15:45:24 +02:00
Andre Klapper
f8ae17bb6a Fix PHP 8.1 "strlen(null)" exception which blocks rendering the Home page
Summary:
`strlen()` was used in Phabricator to check if a generic value is a non-empty string.
This behavior is deprecated since PHP 8.1. Phorge adopts `phutil_nonempty_string()` as a replacement.

Note: this may highlight other absurd input values that might be worth correcting
instead of just ignoring. If phutil_nonempty_string() throws an exception in your
instance, report it to Phorge to evaluate and fix that specific corner case.

Closes T15296

Test Plan: Applied this change and Home page rendered in web browser.

Reviewers: O1 Blessed Committers, valerio.bozzolan

Reviewed By: O1 Blessed Committers, valerio.bozzolan

Subscribers: speck, tobiaswiese, valerio.bozzolan, Matthew, Cigaryno

Maniphest Tasks: T15296

Differential Revision: https://we.phorge.it/D25145
2023-05-01 15:37:56 +02:00
Andre Klapper
788aa453a2 Fix numerous PHP 8.1 "strlen(null)" exceptions which block rendering the Applications page
Summary:
`strlen()` was used in Phabricator to check if a generic value is a non-empty string.
This behavior is deprecated since PHP 8.1. Phorge adopts `phutil_nonempty_string()` as a replacement.

Note: this may highlight other absurd input values that might be worth correcting
instead of just ignoring. If phutil_nonempty_string() throws an exception in your
instance, report it to Phorge to evaluate and fix that specific corner case.

Closes T15294

Test Plan: Applied these three changes and `/applications/` finally rendered in web browser.

Reviewers: O1 Blessed Committers, valerio.bozzolan

Reviewed By: O1 Blessed Committers, valerio.bozzolan

Subscribers: speck, tobiaswiese, valerio.bozzolan, Matthew, Cigaryno

Maniphest Tasks: T15294

Differential Revision: https://we.phorge.it/D25144
2023-05-01 15:34:32 +02:00
Andre Klapper
e3ad37f792 Fix PHP 8.1 "strlen(null)" exception which blocks rendering Upload SSH Public key settings dialog
Summary:
`strlen()` was used in Phabricator to check if a generic value is a non-empty string.
This behavior is deprecated since PHP 8.1. Phorge adopts `phutil_nonempty_string()` as a replacement.

Note: this may highlight other absurd input values that might be worth correcting
instead of just ignoring. If phutil_nonempty_string() throws an exception in your
instance, report it to Phorge to evaluate and fix that specific corner case.

Closes T15311

Test Plan:
Applied this change (on top of D25144, D25145, D25146, D25147, D25151,
D25152, D25153) and `Upload SSH Public key` dialog rendered in web browser.

Reviewers: O1 Blessed Committers, valerio.bozzolan

Reviewed By: O1 Blessed Committers, valerio.bozzolan

Subscribers: speck, tobiaswiese, valerio.bozzolan, Matthew, Cigaryno

Maniphest Tasks: T15311

Differential Revision: https://we.phorge.it/D25161
2023-05-01 01:08:28 +02:00
Andre Klapper
5a0d82df7f Fix PHP 8.1 "strlen(null)" exception which blocks rendering creation form pages for Legalpad, Macro, Settings
Summary:
`strlen()` was used in Phabricator to check if a generic value is a non-empty string.
This behavior is deprecated since PHP 8.1. Phorge adopts `phutil_nonempty_string()` as a replacement.

Note: this may highlight other absurd input values that might be worth correcting
instead of just ignoring. If phutil_nonempty_string() throws an exception in your
instance, report it to Phorge to evaluate and fix that specific corner case.

Closes T15309

Test Plan:
Applied this change (on top of `D25144`, `D25145`, `D25146`, `D25147`, `D25150`,
`D25151`, `D25152`, `D25153`, `D25154`, `D25155`, `D25156`, `D25158` locally applied)
and the pages `/legalpad/edit/`, `/macro/create/`, `/settings/builtin/global/`
rendered in web browser.

Reviewers: O1 Blessed Committers, valerio.bozzolan

Reviewed By: O1 Blessed Committers, valerio.bozzolan

Subscribers: speck, tobiaswiese, valerio.bozzolan, Matthew, Cigaryno

Maniphest Tasks: T15309

Differential Revision: https://we.phorge.it/D25159
2023-04-30 19:42:43 +02:00
Andre Klapper
d8d45d343e Fix PHP 8.1 "strlen(null)" exceptions which block rendering the Conduit page
Summary:
`strlen()` was used in Phabricator to check if a generic value is a non-empty string.
This behavior is deprecated since PHP 8.1. Phorge adopts `phutil_nonempty_string()` as a replacement.

Note: this may highlight other absurd input values that might be worth correcting
instead of just ignoring. If phutil_nonempty_string() throws an exception in your
instance, report it to Phorge to evaluate and fix that specific corner case.

Closes T15307

Test Plan:
Applied these two changes (on top `D25144`, `D25145`, `D25146`, `D25147`, `D25150`,
`D25151`, `D25152`, `D25153`, `D25154` locally applied) and `/conduit/` finally
rendered in web browser. Also the page /conduit/query/.

Reviewers: O1 Blessed Committers, valerio.bozzolan

Reviewed By: O1 Blessed Committers, valerio.bozzolan

Subscribers: speck, tobiaswiese, valerio.bozzolan, Matthew, Cigaryno

Maniphest Tasks: T15307

Differential Revision: https://we.phorge.it/D25156
2023-04-30 18:28:13 +02:00
Andre Klapper
e65ac7b880 Fix PHP 8.1 "strlen(null)" exceptions which block rendering the Conpherence page
Summary:
`strlen()` was used in Phabricator to check if a generic value is a non-empty string.
This behavior is deprecated since PHP 8.1. Phorge adopts `phutil_nonempty_string()` as a replacement.

Note: this may highlight other absurd input values that might be worth correcting
instead of just ignoring. If phutil_nonempty_string() throws an exception in your
instance, report it to Phorge to evaluate and fix that specific corner case.

Closes T15304

Test Plan:
Applied these four changes (on top of `D25144`, `D25145`, `D25146`, `D25147`, `D25150`,
`D25151`, `D25152`, `D25153`) and `/conpherence/` page finally rendered in web browser.

Reviewers: O1 Blessed Committers, valerio.bozzolan

Reviewed By: O1 Blessed Committers, valerio.bozzolan

Subscribers: speck, tobiaswiese, valerio.bozzolan, Matthew, Cigaryno

Maniphest Tasks: T15304

Differential Revision: https://we.phorge.it/D25154
2023-04-30 18:24:49 +02:00
Andre Klapper
4c758f29ae Fix PHP 8.1 "strlen(null)" exception which blocks rendering Config's Module page
Summary:
`strlen()` was used in Phabricator to check if a generic value is a non-empty string.
This behavior is deprecated since PHP 8.1. Phorge adopts `phutil_nonempty_string()` as a replacement.

Note: this may highlight other absurd input values that might be worth correcting
instead of just ignoring. If phutil_nonempty_string() throws an exception in your
instance, report it to Phorge to evaluate and fix that specific corner case.

Closes T15308

Test Plan:
Applied this change (on top of `D25144`, `D25145`, `D25146`, `D25147`, `D25150`,
`D25151`, `D25152`, `D25153`, `D25154`, `D25155`) and `/config/module/` rendered
in web browser.

T15308

Reviewers: O1 Blessed Committers, valerio.bozzolan

Reviewed By: O1 Blessed Committers, valerio.bozzolan

Subscribers: speck, tobiaswiese, valerio.bozzolan, Matthew, Cigaryno

Maniphest Tasks: T15308

Differential Revision: https://we.phorge.it/D25158
2023-04-30 15:18:08 +02:00
Andre Klapper
456ba873ca Fix PHP 8.1 "strlen(null)" exceptions which block rendering the "Add Panel to Dashboard" overlay dialog
Summary:
`strlen()` was used in Phabricator to check if a generic value is a non-empty string.
This behavior is deprecated since PHP 8.1. Phorge adopts `phutil_nonempty_string()` as a replacement.

Note: this may highlight other absurd input values that might be worth correcting
instead of just ignoring. If phutil_nonempty_string() throws an exception in your
instance, report it to Phorge to evaluate and fix that specific corner case.

Closes T15305

Test Plan:
Applied these two changes (on top of `D25144`, `D25145`, `D25146`, `D25147`, `D25150`,
`D25151`, `D25152`, `D25153`, `D25154`)) and "Use Results -> Add Panel to Dashboard"
overlay dialog finally rendered in web browser.

Reviewers: O1 Blessed Committers, valerio.bozzolan

Reviewed By: O1 Blessed Committers, valerio.bozzolan

Subscribers: speck, tobiaswiese, valerio.bozzolan, Matthew, Cigaryno

Maniphest Tasks: T15305

Differential Revision: https://we.phorge.it/D25155
2023-04-30 15:15:31 +02:00
Andre Klapper
1b82943419 Fix PHP 8.1 "strlen(null)" exceptions which block rendering the Diffusion page
Summary:
`strlen()` was used in Phabricator to check if a generic value is a non-empty string.
This behavior is deprecated since PHP 8.1. Phorge adopts `phutil_nonempty_string()` as a replacement.

Note: this may highlight other absurd input values that might be worth correcting
instead of just ignoring. If phutil_nonempty_string() throws an exception in your
instance, report it to Phorge to evaluate and fix that specific corner case.

Closes T15300

Test Plan: Applied these three changes (on top of D25144, D25145, D25146, D25147) and `/diffusion/` finally rendered in web browser.

Reviewers: O1 Blessed Committers, avivey

Reviewed By: O1 Blessed Committers, avivey

Subscribers: speck, tobiaswiese, valerio.bozzolan, Matthew, Cigaryno

Maniphest Tasks: T15300

Differential Revision: https://we.phorge.it/D25150
2023-04-30 15:12:57 +02:00
Andre Klapper
562d36ef5f Fix PHP 8.1 "strlen(null)" exceptions to render the Account Creation page
Summary:
Fix numerous PHP 8.1 "strlen(null)" exceptions which block rendering the initial Account
Creation page in a fresh Phorge installation.

The strlen() was used in Phabricator to check if a generic value was a non-empty string.
For this reason, Phorge adopts phutil_nonempty_string() that checks that.

Note: this may highlight other absurd input values that might be worth correcting
instead of just ignoring. If your phutil_nonempty_string() throws an exception, just
report it to Phorge to evaluate and fix together that specific corner case.

Closes T15279

Test Plan: After these code changes the account creation page got displayed (though without CSS and JS).

Reviewers: O1 Blessed Committers, valerio.bozzolan

Reviewed By: O1 Blessed Committers, valerio.bozzolan

Subscribers: avivey, speck, tobiaswiese, valerio.bozzolan, Matthew, Cigaryno

Maniphest Tasks: T15279

Differential Revision: https://we.phorge.it/D25137
2023-04-29 21:54:57 +02:00
Andre Klapper
ac99285c57 Fix numerous PHP 8.1 "strlen(null)" exceptions trying to create a project
Summary:
`strlen()` was used in Phabricator to check if a generic value is a non-empty string.
This behavior is deprecated since PHP 8.1. Phorge adopts `phutil_nonempty_string()` as a replacement.

Note: this may highlight other absurd input values that might be worth correcting
instead of just ignoring. If your phutil_nonempty_string() throws an exception, just
report it to Phorge to evaluate and fix together that specific corner case.

Closes T15286

Test Plan: Applied these five changes and `/project/view/1/` finally rendered in web browser.

Reviewers: O1 Blessed Committers, valerio.bozzolan

Reviewed By: O1 Blessed Committers, valerio.bozzolan

Subscribers: speck, tobiaswiese, valerio.bozzolan, Matthew, Cigaryno

Maniphest Tasks: T15286

Differential Revision: https://we.phorge.it/D25140
2023-04-29 14:41:20 +02:00
Andre Klapper
c37412df45 Fix numerous PHP 8.1 "strlen(null)" exceptions trying access Configuration page
Summary:
`strlen()` was used in Phabricator to check if a generic value is a non-empty string.
This behavior is deprecated since PHP 8.1. Phorge adopts `phutil_nonempty_string()` as a replacement.

Note: this may highlight other absurd input values that might be worth correcting
instead of just ignoring. If your phutil_nonempty_string() throws an exception, just
report it to Phorge to evaluate and fix together that specific corner case.

Closes T15287

Test Plan: Applied these three changes and `/config/` finally rendered in web browser.

Reviewers: O1 Blessed Committers, valerio.bozzolan

Reviewed By: O1 Blessed Committers, valerio.bozzolan

Subscribers: speck, tobiaswiese, valerio.bozzolan, Matthew, Cigaryno

Maniphest Tasks: T15287

Differential Revision: https://we.phorge.it/D25141
2023-04-29 14:39:40 +02:00
Aviv Eyal
74dfe6f971 Fix is_absolute test in markup
Summary:
See Q59. Fixes rP935d7120ee32.

Call sites should be happy to use PhutilURI when possible.

Test Plan: visit any Repository page. Before - exception, now - data.

Reviewers: O1 Blessed Committers!, valerio.bozzolan

Reviewed By: valerio.bozzolan

Subscribers: speck, tobiaswiese, valerio.bozzolan, Matthew, Cigaryno

Differential Revision: https://we.phorge.it/D25139
2023-04-28 04:09:55 -07:00
Andre Klapper
b56d86e48d Fix numerous PHP 8.1 "strlen(null)" exceptions preventing homepage to display
Summary:
Fix numerous PHP 8.1 RuntimeExceptions caused by the deprecation of strlen(null).

The strlen() was used in Phabricator to check if a generic value was a non-empty string.
For this reason, Phorge adopts phutil_nonempty_string() that checks that.

Note: this may highlight other absurd input values that might be worth correcting
instead of just ignoring. If your phutil_nonempty_string() throws an exception, just
report it to Phorge to evaluate and fix together that specific corner case.

Closes T15264

Test Plan: Phorge homepage is displayed on PHP 8.1 after applying these changes

Reviewers: O1 Blessed Committers, valerio.bozzolan

Reviewed By: O1 Blessed Committers, valerio.bozzolan

Subscribers: speck, tobiaswiese, valerio.bozzolan, Matthew, Cigaryno

Maniphest Tasks: T15264

Differential Revision: https://we.phorge.it/D25132
2023-04-27 14:08:48 +02:00
Andre Klapper
f3b3741316 Fix PHP 8.1 "strlen(null)" exception inCelerityResourceController to make CSS/JS load
Summary:
On a fresh installation with PHP 8.1, CSS does not load on the account creation page.

Closes T15283

Test Plan: After applying this change (and D25137), the account creation page is rendered correctly. See the screenshot in T15283

Reviewers: O1 Blessed Committers, valerio.bozzolan

Reviewed By: O1 Blessed Committers, valerio.bozzolan

Subscribers: speck, tobiaswiese, valerio.bozzolan, Matthew, Cigaryno

Maniphest Tasks: T15283

Differential Revision: https://we.phorge.it/D25138
2023-04-27 10:51:19 +02:00
Andre Klapper
7b080db57c Rename default SSH key name from Phabricator to Phorge
Summary:
Rename default SSH key name from Phabricator to Phorge

Closes T15274

Test Plan: Go to https://we.phorge.it/settings/panel/ssh/ and select `SSH Key Actions > Generate Keypair`

Reviewers: O1 Blessed Committers, avivey, valerio.bozzolan

Reviewed By: O1 Blessed Committers, avivey, valerio.bozzolan

Subscribers: avivey, speck, tobiaswiese, valerio.bozzolan, Matthew, Cigaryno

Maniphest Tasks: T15274

Differential Revision: https://we.phorge.it/D25135
2023-04-27 09:29:05 +02:00
Valerio Bozzolan
1e27a7b899 Fix outdated Celerity
Summary:
Ref D25134
Ref T15276

Test Plan: - make unit test happy

Reviewers: O1 Blessed Committers, avivey

Reviewed By: O1 Blessed Committers, avivey

Subscribers: speck, tobiaswiese, Matthew, Cigaryno

Maniphest Tasks: T15276

Differential Revision: https://we.phorge.it/D25136
2023-04-26 12:26:24 +02:00
Valerio Bozzolan
7bd4089a26 Drag & Drop: fix JavaScript error related to JX.$(undefined)
Summary:
This change fixes the following recent JavaScript error:

    Error: Empty ID passed to JX.$()!

The regression was introduced here:

90f9da643d

Closes T15272

Test Plan: - with this change I was able to open Conpherence Persistent Chat and Drop a file

Reviewers: O1 Blessed Committers, Dylsss, avivey

Reviewed By: O1 Blessed Committers, avivey

Subscribers: Dylsss, speck, tobiaswiese, Matthew, Cigaryno

Maniphest Tasks: T15272

Differential Revision: https://we.phorge.it/D25134
2023-04-26 09:51:03 +02:00
Valerio Bozzolan
a89b4ff5b8 Members page of Parent Subproject: less dead-end
Summary:
When you visit the Members page of a Parent Subproject,
some actions are greyed out by design. And, if you click on
them, nothing really useful happens to continue with what
you want to do.

For example, see this page and click on "Join Project":

https://we.phorge.it/project/members/1/

After this change, the interface at least provides a link to
proceed to the next step of what you wanted to do - that is -
allowing to quickly list direct Subprojects and do something
more meaningful than that.

A/B for the "Join Project" view:

| Before    | After     |
|-----------|-----------|
| {F282337} | {F282331} |

A/B for the "Add Members" view:

| Before    | After     |
|-----------|-----------|
| {F282338} | {F282332} |

Just to be nice, this change adds some inline documentation
on some methods of AphrontDialogView used here.

Closes T15258

Test Plan:
- Create a Project (A) with a Subproject (B)
- Visit Members page of (A)
- Click on Join Project and click on the Blue Button
- Click on the Add Member and click on Blue Button
- in both cases it should get you to Subprojects list

Reviewers: O1 Blessed Committers, Matthew

Reviewed By: O1 Blessed Committers, Matthew

Subscribers: speck, tobiaswiese, Matthew, Cigaryno

Maniphest Tasks: T15258

Differential Revision: https://we.phorge.it/D25127
2023-04-25 20:53:44 +02:00
Andre Klapper
935d7120ee PHP 8.1 "preg_match(null)" exception in javelin/markup.php when http_action not set
Summary:
Accessing a project's workboard URL of a non-existing workboard shows RunTimeException in PHP 8.1:

    preg_match(): Passing null to parameter #2 ($subject) of type string is deprecated

Closes T15262

Test Plan: Page whether to create a workboard for a project was displayed after this change

Reviewers: O1 Blessed Committers, avivey, valerio.bozzolan

Reviewed By: O1 Blessed Committers, avivey, valerio.bozzolan

Subscribers: avivey, speck, tobiaswiese, valerio.bozzolan, Matthew, Cigaryno

Maniphest Tasks: T15262

Differential Revision: https://we.phorge.it/D25131
2023-04-25 15:45:57 +02:00
Dylan F
98c1267e5f Countdown: fix PhutilMissingSymbolException
Summary:
A previous change added a couple of Countdown-related classes:

7ed35123a3

This change updates the related library map (arc liberate) in order to
fix any related regression (like PhutilMissingSymbolException).

Closes T15271

Test Plan:
- you run `arc liberate` and the file does not change
- you do not see any `PhutilMissingSymbolException` exception

Reviewers: O1 Blessed Committers, valerio.bozzolan

Reviewed By: O1 Blessed Committers, valerio.bozzolan

Subscribers: speck, tobiaswiese, valerio.bozzolan, Matthew, Cigaryno

Maniphest Tasks: T15271

Differential Revision: https://we.phorge.it/D25133
2023-04-25 06:37:38 -07:00
Dylan F
90f9da643d Add and use new RemarkupMetadata class
Summary:
Add a new RemarkupMetadata class and use with upload button as well as drag and drop pathways.

With this change, files are now attached automatically to the object. This this could solve
several issues, for example when a person uploads a file but only that author is able to see it.

Ref T15106

Test Plan:
- Drag and drop file, upload file with button. Check that both files are attached with "attachedFilePHIDs" values.
    - drop file in a Task description (now works)
    - drop file in a Task comment (now works)
    - drop file in an edited Task comment (still not supported)
- This was already tested in Wikimedia Foundation: https://phabricator.wikimedia.org/D1203

Reviewers: O1 Blessed Committers, avivey, Matthew

Reviewed By: O1 Blessed Committers, avivey, Matthew

Subscribers: MCPCN, avivey, speck, tobiaswiese, valerio.bozzolan, Matthew, Cigaryno

Tags: #remarkup

Maniphest Tasks: T15106

Differential Revision: https://we.phorge.it/D25052
2023-04-24 01:53:16 +00:00
Mukunda Modell
7ed35123a3 Countdown: add a capability to decide who can Create
Summary:
This change adds the `countdown.create` capability to
allow to limit countdown creation.

This change comes from the Wikimedia Phabricator and
was originally proposed by v.bozzolan and implemented
by the kind user 20after4.

https://phabricator.wikimedia.org/T258599

Closes T15208
Ref T15081

Test Plan:
- go to the page /applications/view/PhabricatorCountdownApplication/
- play a bit with the "Can Create Countdowns" option
- note that it is respected

Reviewers: O1 Blessed Committers, valerio.bozzolan

Reviewed By: O1 Blessed Committers, valerio.bozzolan

Subscribers: speck, tobiaswiese, Matthew, Cigaryno

Tags: #countdown, #policy_archived

Maniphest Tasks: T15208, T15081

Differential Revision: https://we.phorge.it/D25101
2023-04-23 15:15:50 -05:00
Valerio Bozzolan
1ba5c8c260 Fix some PHP 8.1 issues in Diviner generator
Summary:
After this change I was able to generate again the Diviner
documentation from PHP 8.2 using the related command:

    ./bin/diviner generate

Closes T15255

Test Plan:
- run `./bin/diviner generate` - great success
- tested the advanced search in various ways - it still works

Reviewers: O1 Blessed Committers, Matthew

Reviewed By: O1 Blessed Committers, Matthew

Subscribers: Ekubischta, speck, tobiaswiese, Matthew, Cigaryno

Maniphest Tasks: T15226, T15255

Differential Revision: https://we.phorge.it/D25124
2023-04-20 18:00:31 +02:00
Aviv Eyal
996a853fc4 Update "how to file bugs"
Summary:
We want users to use Ponder as primary support vector.

T15084

Test Plan: Generated diviner, saw that the reference works correctly.

Reviewers: O1 Blessed Committers, valerio.bozzolan

Reviewed By: O1 Blessed Committers, valerio.bozzolan

Subscribers: speck, tobiaswiese, valerio.bozzolan, Matthew, Cigaryno

Differential Revision: https://we.phorge.it/D25125
2023-04-18 08:21:33 -07:00
Valerio Bozzolan
a5c93dea56 Fix InvalidArgumentException on commit hook
Summary:
Fix a regression introduced here:

96ae4ba13a

I reproduced this exception executing "svn commit" on a hosted repository.

That crash happened because the PHP getenv() function can return false.
But, that is a very terrible value that blasts the non-string-empty check.

So, now the default getenv() value is skipped, without causing problems.

Closes T15253
Ref T15190

Test Plan: - I've run `svn commit` and I have not encountered any issue now

Reviewers: O1 Blessed Committers, avivey

Reviewed By: O1 Blessed Committers, avivey

Subscribers: speck, tobiaswiese, Matthew, Cigaryno

Maniphest Tasks: T15253, T15190

Differential Revision: https://we.phorge.it/D25122
2023-04-14 22:09:23 +02:00
Valerio Bozzolan
1b9da964e9 Add setup check to avoid git version 2.5.0 and below (May 2015)
Summary:
After this change, if you have a deprecated git version,
now you see a related information config warning:

{F276840}

Having said that the git version 1.8.3.1 - that for example
is provided by CentOS 7 - is surely problematic;

Some sources indicate all git versions *before* 2.5.0 as not
able to handle the '--' escape argument. The '--' arg
is used to separate normal git flags from user arguments,
so that they cannot be mistakenly exchanged. Kind of:

    git <flags> -- <arguments>

The problem is, Phabricator/Phorge at the moment executes
this kind of git commands when you surf a git repository from
the web interface:

    git cat-file -t -- <hash>:<file>

But, if your git version does not support "--", you can
get yourself into unhappy situations since "--" could be
just interpreted as a "wrong value", causing other
considerations and misleading exceptions, such as:

    This path was a submodule at <repo>:<hash>

If you have seen the above error while surfing a git repo,
and if you have 2.5.0 or before, and if you are sure that
the mentioned path it's not a submodule, you probably
need a git update.

It is not yet clear whether Phabricator/Phorge should
support the possibility of this lack of support for "--".
In the meanwhile, just update your git on the server.

AFAIK no particular version is required on your clients.

Related information:

- https://unix.stackexchange.com/a/740621/85666
- b48158ac94

If you disagree, please do not simply ignore the
warning but share your experience in the Task.

Ref T15179

Test Plan:
- open Phorge, you see no warnings since you are
  already up to date. Nice.
- Otherwise, you see a nice config message, and you
  can ignore it as usual.

Reviewers: O1 Blessed Committers, Cigaryno, avivey

Reviewed By: O1 Blessed Committers, Cigaryno, avivey

Subscribers: avivey, speck, tobiaswiese, Matthew, Cigaryno

Maniphest Tasks: T15179

Differential Revision: https://we.phorge.it/D25089
2023-04-10 11:10:02 +02:00
Aviv Eyal
9c759fe23a Fix preamble-support
Summary:
Phutil is not yet loaded during preamble, so we can't use it.

This change fixes a regression introduced here, fixing PHP 8.1 support:

{96ae4ba13acbf0e2f8932e950a92af0495f034d7}

Ref T15064

Test Plan: Included test script.

Reviewers: O1 Blessed Committers, valerio.bozzolan

Reviewed By: O1 Blessed Committers, valerio.bozzolan

Subscribers: speck, tobiaswiese, valerio.bozzolan, Matthew, Cigaryno

Maniphest Tasks: T15064

Differential Revision: https://we.phorge.it/D25114
2023-04-10 01:13:52 -07:00
Valerio Bozzolan
a7b472284b Mobile: show Homepage contents and avoid duplicate menus
Summary:
After this change, the Homepage finally shows contents on Mobile,
instead of just showing the sidebar menu twice.

Closes T15216

Test Plan:
To test this change in general:

- resize the window horizontally and enjoy

I tested it in:

- tested homepage of Phorge
- Audit
  - tested homepage of Audit
- Auth
  - tested Auth homepage
  - tested Login page
  - tested Forgot your password page
- Config
  - tested Config homepage
  - tested page Core Settings
  - tested page Unresolved Setup Issues
  - (Services)
     - tested page Database Status
     - tested page Cache Status
     - tested page Notification Servers
     - tested page Repository Services
     - tested page Search Servers
  - (Extensions/Modules)
     - tested page Constants: Differential
     - tested page Content Sources
- Conpherence
  - tested open-close menu
  - tested persistent chat
  - tested Rooms list
  - tested single Chat
- Dashboards
  - tested general homepage of Dashboards
  - tested specific Dashboard - view page
  - tested specific Dashboard - edit page
- Differential
  - tested general homepage of Differential
  - tested Create Diff page
- Diffusion
  - tested general homepage of Diffusion
  - tested specific Diffusion repository - view page
  - tested specific Diffusion repository - Manage page
  - tested specific Diffusion repository - Policy page
  - tested specific Diffusion repository - Automation page
  - tested specific commit page - view page
  - tested specific commit page - Edit Commit
- Diviner
  - tested general homepage of Diviner
  - tested specific Diviner book
  - tested list of technical Classes
  - tested specific technical Class
  - tested search of All Atoms
- Feed
  - tested Feed homepage ("All Stories")
  - tested specific feed - view page
- Files
  - tested general homepage of Files
  - tested specific File - view page
  - tested specific File - Edit File
  - tested Award Token popup
  - tested Flag for Later
  - tested View Transforms
- Form Engine
  - tested View Forms Configurations page
  - tested specific View Form Configuration
  - tested Use Form
- Maniphest
  - tested general homepage of Maniphest
  - tested specific Maniphest Task - view page
  - tested specific Maniphest Task - Edit mode
  - tested specific Maniphest Task - Award Token popup
- Menu
  - tested page Configure Menu
  - tested page Personal Menu Items
  - tested page Global Menu Items
- Notifications
  - tested open action
  - tested close action
  - tested click action
- People
  - tested general homepage of People
  - tested specific User - view page
  - tested specific User - Settings page - home
  - tested specific User - Settings page - Date & Time
  - tested specific User - Settings page - External Editor
  - tested specific User - Settings page - External Editor
  - tested specific User - Settings page - SSH Public Keys
  - tested specific User - Settings page - SSH Public Keys - upload popup
  - tested specific User - Settings page - SSH Public Keys - view history
- Pholio
  - tested general homepage of Pholio
  - tested Create a Mock page
  - tested specific Pholio - view
  - tested specific Pholio - Edit page
  - tested specific Pholio - Award Token popup
  - tested specific Pholio - Edit Related Tasks popup
  - tested specific Pholio - add a Comment
- Phriction
  - tested specific page of Phriction - view
  - tested specific page of Phriction - Create Page popup
  - tested specific page of Phriction - Create Page dedicated page
  - tested specific page of Phriction - Edit Page
  - tested specific page of Phriction - Award Token popup
- Project
  - tested general homepage of Projects
  - tested Create Project page
- Search
  - tested search results All Results
  - tested Advanced Search page
- TOTP
  - tested input screen
- Workboard
  - tested specific Workboard
  - tested Create Task popup
  - tested Add Column popup
  - tested Manage Workboard page
  - tested Edit Details page
  - test Flag for Later popup
  - test Edit Picture page

Reviewers: O1 Blessed Committers, Cigaryno, speck

Reviewed By: O1 Blessed Committers, Cigaryno, speck

Subscribers: avivey, speck, tobiaswiese, Matthew, Cigaryno

Tags: #mobile, #ux

Maniphest Tasks: T15216

Differential Revision: https://we.phorge.it/D25107
2023-04-09 22:48:47 +02:00
Valerio Bozzolan
0a82ccb8a4 AphrontFileResponse: avoid alien usages of setDownload()
Summary:
I noticed that - historically - setDownload() could also be used with
false, true, or other weird values to activate a download filename.
So, this change continues to give full compatibility to PHP 8.1 but
with extra validations.

This also adds a bit of inline documentation to put this more explicit.

For more context see the previous version:

{5952b0a31b6aac0718bc23aefe43560b9bfe8cc5}

{96ae4ba13acbf0e2f8932e950a92af0495f034d7}

Ref T15190

Test Plan:
- Drop a file in a comment, click, download
- See that it still works

Reviewers: O1 Blessed Committers, Cigaryno, avivey

Reviewed By: O1 Blessed Committers, Cigaryno, avivey

Subscribers: avivey, speck, tobiaswiese, Matthew, Cigaryno

Maniphest Tasks: T15190

Differential Revision: https://we.phorge.it/D25113
2023-04-09 22:46:04 +02:00
Aviv Eyal
d46aab8321 Add GitHub mirror to list of known mirrors
Summary: Ref T15046

Test Plan: Clone phorge from github mirror, visit `/config/`, see correct branch-point in `Version Information`

Reviewers: O1 Blessed Committers, Cigaryno, valerio.bozzolan

Reviewed By: O1 Blessed Committers, Cigaryno, valerio.bozzolan

Subscribers: speck, tobiaswiese, valerio.bozzolan, Matthew, Cigaryno

Maniphest Tasks: T15046

Differential Revision: https://we.phorge.it/D25115
2023-04-09 05:28:25 -07:00
Valerio Bozzolan
b587865ce7 People: add a permalink to list Administrators
Summary:
This change introduces a builting query to easily list
Administrators of your beautiful Phorge instance:

{F277912}

Note that any builtin query can be disabled anytime or
reordered, so this is not a problem if you already have
a similar saved query. But probably you have not.

The goal is not to just "have a link" (this was already
possible) but to have a predictable link to be used in
any instance-agnostic document, including but not
limited to Diviner or Phorge's user interface messages.

Closes T15238

Test Plan: Visit /people/query/admin/ and enjoy.

Reviewers: O1 Blessed Committers, Cigaryno, Matthew

Reviewed By: O1 Blessed Committers, Cigaryno, Matthew

Subscribers: speck, tobiaswiese, Matthew, Cigaryno

Maniphest Tasks: T15238

Differential Revision: https://we.phorge.it/D25116
2023-04-08 09:47:12 +02:00
Valerio Bozzolan
dad1b15a9c User Badges: better integrate with Removed Comments
Summary:
The left part of a Removed Comment can contains User Badges that,
after this change, are more consistent with the new general softness.

| Before     | Proposed  |
|------------|-----------|
|  {F277371} | {F277373} |

Probably five people in a million will notice this change, BUT,
these people will have a huge, deep, breath of relief, knowing that
Phorge takes care about their obsessive-compulsive impulses, to
have everything nice and consistent and neat. You are welcome!

Closes T15235

Test Plan:
- do something to deserve a Badge
- share a Comment somewhere (Maniphest?)
- delete that comment
- check that the badge is slightly softer

Reviewers: O1 Blessed Committers, avivey

Reviewed By: O1 Blessed Committers, avivey

Subscribers: speck, tobiaswiese, Matthew, Cigaryno

Maniphest Tasks: T15235

Differential Revision: https://we.phorge.it/D25112
2023-04-07 00:21:41 +02:00
Valerio Bozzolan
3a8ee271d9 Render all Removed Comments a little more docile
Summary:
This small restyle makes any Removed Comment a little less
prominent than normal ones, with the goal of decreasing a
bit your in-page distractions and increase your individual
productivity in your business by at least 250 milliseconds
every 48 hours of hard work in front of your monitor.

| Before              | After               |
|---------------------|---------------------|
| {F274834,size=full} | {F274835,size=full} |

This implementation (which is called "Kasper on Diet")
contains these specific changes for Removed Comments:

- user icon visibility: reduced by ~50% (-> Kasper)
- black "trash" icon: reduced by ~50% (-> Diet)
- texts: visibility reduced by ~50%
- vertical padding: reduced from 16px down to 4px

Note that if your Phorge is under the Serious Business Mode,
it seems it is still technically possible to manually
activate the "Decaying Curse" proposal mentioned in the Task.

Closes T15192

Test Plan:
- Add a Comment "I love Phorge"
- Add a Comment "I love Phabricator"
- Mark the second Comment as Removed
- Call a person at your desk
- Plug that person to an eyeball tracker

If the general attention focuses first on a normal Comment and then
on the Removed Comment, this change works perfectly.

Reviewers: O1 Blessed Committers, Cigaryno, avivey

Reviewed By: O1 Blessed Committers, Cigaryno, avivey

Subscribers: speck, tobiaswiese, Matthew, Cigaryno

Tags: #comments

Maniphest Tasks: T15192

Differential Revision: https://we.phorge.it/D25096
2023-04-06 14:46:35 +02:00
Valerio Bozzolan
524579fe64 Diffusion: fix missing mobile "Actions" from Manage Repo
Summary:
After this change, the page "/manage/" related to Diffusion
repositories has an "Actions" button for mobile users:

{F276113}

Before this change, that button was missing only from this
specific page, and so it was really difficult for them
(if not impossible) to edit repository's basic information:

{F276115}

Do not confuse the hamburger menu on the sidebar with this
"Actions". The hamburger contains queries like Active Repo,
All Repo, etc. Instead the Actions contains
Edit Basic Info, Allow Dangerous Changes, etc.

It seems the cause of this problem is originated from an
apparently incomplete rollback occurred in Sep 6 2017 from
Phabricator:

e1fd74ddb5

As you can see, the DiffusionRepositoryBasicsManagementPanel
was probably not completely restored from the previous
version, at least for the part related to the method
newActionList():

bb369c7b71

The method newActionList() was restored in every other
panel but no the one related to the Basics Management. So,
a new PhabricatorActionListView object was manually
created, but without generating an ID from the Celerity
utilities.

In short, this change assigns an ID to this Curtain, in
order to correctly generates a related "Actions" menu
again. Otherwise, on mobile the curtain (with all the
actions) is automatically hidden, without any alternative.

Closes T15067

Test Plan:
- Repository > Actions > Manage Repository
- Reduce the page until "Actions" appears (yeeh!)

Reviewers: O1 Blessed Committers, Cigaryno, avivey

Reviewed By: O1 Blessed Committers, Cigaryno, avivey

Subscribers: speck, tobiaswiese, Matthew, Cigaryno

Tags: #diffusion, #mobile

Maniphest Tasks: T15067

Differential Revision: https://we.phorge.it/D25109
2023-04-06 10:58:43 +02:00
Valerio Bozzolan
787a84969f Phriction: clarify its search results as "Wiki page"
Summary:
This patch changes a bit how your search results from Phriction
are described in the autocomplete component (the "Typehead"):

{F276843}

After this change, Phriction search results will also contain the word
"Wiki page" so that users can better understand what the result
actually is. Just like a Diffusion repository mentions that it's
a "Repository", and just like a Project mentions that it's a
"Project" and so on.

Before this change, the Typehead entries were only mentioning
the slug of that wiki page.

| Before    | After     |
| {F274820} | {F272278} |

It's unclear if the previous behavior was a mistake (since the
internal parameter of the Typehead is called "type", and so, it
is supposed to mention the application type, not the slug.

Anyway, as a compromise, the slug is still mentioned.

To be honest this is just an excuse to put the middle dot /
aka interpunct character in this project again. Yeah, here the
middle point was used as separator. The apparent reason is:
because the middle point was already in use elsewhere in Phorge.
The real reason is: I'm a lobbyist in a corporation that sells
interpuncts worldwide as our core business, and so, I designed
thisvil plan to put the following middle point - again - in
Phorge (evil laugh).

Closes T15213

Test Plan:
- Search "Change Log" in the up-right bar (or similar)
- You see "Wiki Page · change_log/" (or similar)

Reviewers: O1 Blessed Committers, Cigaryno, avivey

Reviewed By: O1 Blessed Committers, Cigaryno, avivey

Subscribers: avivey, speck, tobiaswiese, Matthew, Cigaryno

Tags: #phriction

Maniphest Tasks: T15213

Differential Revision: https://we.phorge.it/D25102
2023-04-05 15:39:41 +02:00
Valerio Bozzolan
306ce1c0b7 Fix "Search" Application description
Summary:
This description was somehow broken since 2019:

{F276845}

Probably this was caused by a Remarkup breaking change introduced by this
specific XSS security fix:

{54bcbdaba94a3573e128c6498816dbfa41d3a9cb}

Maybe in the future the backtick operator will be supported again
in Remarkup. Or, maybe not. So, let's just workaround to make that
specific page "less exploded" again.

Closes T15230

Test Plan:
- visit the page /applications/view/PhabricatorSearchApplication/
- check that now the Remarkup is rendered perfectly

Reviewers: O1 Blessed Committers, Cigaryno, avivey

Reviewed By: O1 Blessed Committers, Cigaryno, avivey

Subscribers: avivey, speck, tobiaswiese, Matthew, Cigaryno

Maniphest Tasks: T15230

Differential Revision: https://we.phorge.it/D25110
2023-04-05 15:37:46 +02:00
Valerio Bozzolan
96ae4ba13a PHP 8.1: fixes for strlen() not accepting NULL anymore, part 2
Summary:
This is a fix for PHP 8.1 deprecation of strlen(NULL), for these Phorge components:

- scripts
- aphront
- project

The strlen() was used in Phabricator to check if a generic value was a non-empty string.
For this reason, Phorge adopts phutil_nonempty_string() that checks that.

Note: this may highlight other absurd input values that might be worth correcting
instead of just ignoring. If your phutil_nonempty_string() throws an exception, just
report it to Phorge to evaluate and fix together that specific corner case.

Closes T15223
Ref T15190
Ref T15064

Test Plan: - check with your big eyes that there are no obvious typos

Reviewers: O1 Blessed Committers, avivey

Reviewed By: O1 Blessed Committers, avivey

Subscribers: speck, tobiaswiese, Matthew, Cigaryno

Maniphest Tasks: T15223, T15190, T15064

Differential Revision: https://we.phorge.it/D25105
2023-04-01 15:20:13 +02:00
Valerio Bozzolan
d25d630fe5 PHP 8.2: fixes for strlen() not accepting NULL anymore, part 1
Summary:
This change avoids some unnecessary uses of the strlen() function,
actually fixing some deprecation warnings in PHP 8.2.

In short, this is the suggested universal replace:

    -if(strlen($v))
    +if(phutil_nonempty_string($v))

And, if you know PHP, this is also another adoptable replace, but
only for cases where you are sure that the string "0" is not useful:

    -if(strlen($v))
    +if($v))

As usual the optimal solution depends on the contest.

Other similar patches will probably follow.

Closes T15222
Ref T15190

Test Plan:
- for the first time in my life, with this change, the unit tests are passed in PHP 8.2
- check with your big eyes that there are no obvious typos

Reviewers: O1 Blessed Committers, avivey

Reviewed By: O1 Blessed Committers, avivey

Subscribers: avivey, speck, tobiaswiese, Matthew, Cigaryno

Maniphest Tasks: T15199, T15190, T15222

Differential Revision: https://we.phorge.it/D25104
2023-03-31 22:05:52 +02:00
Valerio Bozzolan
fc9bbb9949 Workboard: fix regression caused by tags= prefiller
Summary:
This change fixes a regression introduced here:

rP5e2b3677157889104a7e540d7772a04f13164037

Thank you to the user @dadalha for auditing that commit
and sharing a stack trace to easily fix the issue.

In short, if you see this exception you are affected:

```
EXCEPTION: (InvalidArgumentException)
Value provided to "replaceQueryParam()" for key "tags" is NULL.
Use "removeQueryParam()" to remove a query parameter.
at [<arcanist>/src/parser/PhutilURI.php:341]
```

This change just fixes that specific problem.

Closes T15221

Test Plan:
1. Create a new Project
2. Create a new Milestone inside
3. Create the Milestone's Workboard
4. Visit the Milestone's Workboard and note that now it works

Reviewers: O1 Blessed Committers, avivey

Reviewed By: O1 Blessed Committers, avivey

Subscribers: speck, tobiaswiese, Matthew, Cigaryno, dadalha

Tags: #workboard

Maniphest Tasks: T15221

Differential Revision: https://we.phorge.it/D25103
2023-03-31 11:05:22 +02:00