Remove file-by-file preference cookie
What does this MR do?
For #327162 (closed)
This MR removes the usage of the File-By-File (e.g. "One file at a time") cookie since the initial setting already comes from the user's preferences, and toggling the checkbox in the Diffs UI also toggles the user's preference.
Because the utils/preferences.js#fileByFile
helper method is essentially just a wrapper that merges the "default" preference with the cookie, that whole file (the method is the only content) and its test suite are also deleted.
preferences.js
I think there's a lot of value at GitLab in having defined modules like diffs/utils/preferences.js
as "the place" to put preferences helpers. Momentum carries a very significant weight in review, and being able to say "Why don't we put all our preferences getters over in preferences.js
?" is really helpful. It pains me a bit to remove the whole module so it's not even there to reference.
Screenshots or Screencasts (strongly suggested)
N/A. There's no UI change.
How to setup and validate locally (strongly suggested)
The only way to test this locally is to have a bit of an odd setup that you can't really get in the UI any more.
Basically:
- Have your user preference ("Show one file at a time on merge request's Changes tab") set to something (it doesn't matter, checked or unchecked).
- Set the cookie (
fileViewMode
) to the opposite value (you can see the two options here in the removed constants:single
orall
)
On the current master
branch, your cookie setting will override the preference setting.
Note that if you toggle the setting using the Cog dropdown > "Show one file at a time" checkbox in the MR Changes tab, the cookie and the user preference will re-sync.
On this MR's branch, the cookie is ignored.
Does this MR meet the acceptance criteria?
Conformity
-
I have included changelog trailers, or none are needed. (Does this MR need a changelog?) -
I have added/updated documentation, or it's not needed. (Is documentation required?) -
I have properly separated EE content from FOSS, or this MR is FOSS only. (Where should EE code go?) -
I have added information for database reviewers in the MR description, or it's not needed. (Does this MR have database related changes?) -
I have self-reviewed this MR per code review guidelines. -
This MR does not harm performance, or I have asked a reviewer to help assess the performance impact. (Merge request performance guidelines) -
I have followed the style guides. -
This change is backwards compatible across updates, or this does not apply.
Availability and Testing
-
I have added/updated tests following the Testing Guide, or it's not needed. (Consider all test levels. See the Test Planning Process.) -
I have tested this MR in all supported browsers, or it's not needed. -
I have informed the Infrastructure department of a default or new setting change per definition of done, or it's not needed.