This is a follow-up to 9c5a477395.
This change removes all spaces and newlines inside of the <td> elements
by a Mustache comment. This prevents that the newline get converted to a
<p> element when the recent changes get included by
{{Special:RecentChanges|enhanced=1}}
Bug: T215737
Change-Id: I179d0b36b122efc3e1b7c193354ad03c3c9cefcf
The special page RecentChanges can included in wiki content via
{{Special:RecentChanges}}
In this case the generated content is parsed by a wikitext parser. The
wikitext parser converts
<td>
<span>Foo</span>
</td>
to the HTML
<td><p><span>Foo</span></p></td>
But the wikitext
<td><span>Foo</span></td>
is converted to the HTML
<td><span>Foo</span></td>
The module 'jquery.makeCollapsible' supports custom collapsible toggle
buttons but only when they are a direct child of the <td> element. When
the module does not find a custom collapsible toggle button it adds the
default button [Expand].
Because of the additional <p> element when including the recent changes
the module 'jquery.makeCollapsible' adds a default collapsible toggle
button.
This change removes the spaces between <td> and <span> to prevent the
<p> elements when including the recent changes.
Bug: T215737
Change-Id: Ida46956fc7f9ab923c542751ac13411380c02ab0
Construction of the highlight containers was moved to the backend, but
setupHighlightContainers() also aggregates the CSS classes used for
highlights for grouped entries in enhanced mode.
Move that to the backend too, and get rid of setupHighlightContainers().
Also move the namespace classes to getHTMLClassesForFilters() so that
they get picked up too, and pick up classes for tags separately because
the way they're handled is weird.
Bug: T197168
Change-Id: I4c374f82e7d128025f4e2b2f39b0adba14b76ef3
Create the highlight container div in the backend for
both regular and enhanced result view, so we spare
the load in the frontend.
Bug: T197168
Change-Id: I36bd7b7c4c124d305ac7b07e824dc2a58e152be4
* Remove left-over mention of the .php5 entry points in docs.
* Remove dead logic in NoLocalSettings for php5 entry points.
* Remove dead match in WebRequest for php5 entry points (they'd
redirect since 1.25, and not seen by PHP).
Change-Id: Ia0ee8588591860b8fe34030c8503f38e9bce31f3
When the 'watchlistunwatchlinks' preference option is enabled, this
adds a '×' link to each entry of the watchlist that unwatches the page
of that entry. When clicked, it changes into a '+' which can be used to
re-watch the page (effectively undoing the earlier unwatch).
When a page is unwatched, its entries and the entries of its associated
talk page (or vice versa) become translucent and are struck through.
Without JS, '×'/'+' link to action=(un)watch for the relevant page.
In addition, ChangesList classes have been modified to allow a prefixer
that adds a prefix to each line (used in this case to put the unwatch
link) and to add HTML data attributes to reliably determine the target
page of each entry. Unit tests have been updated accordingly.
Bug: T2424
Change-Id: I450b2901413d7e75c11de2a446829fdbb22d31e1
For both "Live Update" and "View newest changes", add a marker
between old and new groups when changes are grouped by page.
Bug: T163426
Change-Id: I00947d05e9b6022604a2a6b94eec94f6ed747c96
We have several types of change lists (old RC/watchlist/related
changes, enhanced RC/watchlist, history) with slightly different
HTML, each with their own idiosyncracies. JavaScript code trying
to identify lines by log ID / revision ID has to jump through all
kinds of hoops to work with that.
To simplify the lives of frontend / gadget maintainers and provide
something approaching an API for these pages, we now expose the basic
attributes of each change line (revision ID for edits, log type/action
and ID for log events) as data attributes.
The OldChangesListRecentChangesLine, EnhancedChangesListModifyLineData,
EnhancedChangesListModifyBlockLineData, PageHistoryLine,
ContributionsLineEnding and DeletedContributionsLineEnding hooks
are updated accordingly. New hooks (LogEventsListLineEnding and
NewPagesLineEnding) are added for the change list pages which did
not yet have them.
Change-Id: I6dd006d0b1b0fd35c0020f0f9eea9113eca30b35
The original change was 1bce6db10e
It got reverted in I8f63e002e34a9d13e2597a27e3dd918a687d1e7c
Fixed issues raised
Bug: T122537
Change-Id: I047038d6164bd6e32909d25bb37002b43bfd3a92
Rewrite authentication-related special pages to use AuthManager.
All the changes mentioned below only take effect when
$wgDisableAuthManager is false.
LoginForm is rewritten to use HTMLForm and split into UserLogin
and CreateAccount; ChangePassword and PasswordReset are rewritten;
ChangeEmail and Preferences are updated. Four new special pages
are added to handle the new capabilities of AuthManager (linked
accounts, secondary authentication providers): LinkAccounts,
UnlinkAccounts, ChangeCredentials, RemoveCredentials.
The old form-based hooks (ChangePasswordForm, UserCreateForm,
UserLoginForm) are deprecated. A new, more generic hook is
available to alter the forms (AuthChangeFormFields);
form changes that involve new fields should be done via
$wgAuthManagerConfig.
UserLoginComplete is limited to web-based login; for more
generic functionality UserLoggedIn can be used instead.
Hooks that assume password-based login (PrefsPasswordAudit,
AbortChangePassword) are removed; the first functionality
is replaced by ChangeAuthenticationDataAudit, the second is
handled by AuthManager. LoginPasswordResetMessage is removed,
the functionality can be recreated via authentication providers.
There are several smaller backwards incompatible changes:
* Adding fields to the login/signup forms by manipulating the
template via the extraInput/extrafields parameters is not
supported anymore. Depending on the authn configuration the
login/signup process might be multistep and it would be
complicated to ensure that extensions can access the data
at the right moment. Instead, you can create an
AuthenticationProvider which can define its own fields and
process them when the authentication is over.
(There is B/C support for a transitional period that works with
the default login form, but might break with configurations that
require multiple steps or redirects.)
* Removed cookie redirect check. This was added in 2003 in 9ead07fe9
for the benefit of bots, but with MediaWiki having an API these days
there is little reason to keep it. Same for the wpSkipCookieCheck
flag (added in 2008 in 29c73e8265).
* Instead of embedding a password field on sensitive special pages
such as ChangeEmail, such pages rely on AuthManager for elevated
security (which typically involves requiring the user to log in again
unless their last login was more than a few minutes ago).
Accordingly, wgRequirePasswordforEmailChange is removed.
* Special:ChangePassword requires login now.
* Special:ResetPassword now sends a separate email to each user when called
with a shared email address.
* the Reason field had a message with 'prefsectiontip' class
which was sorta broken but used in extensions for formatting.
HTMLForm does not support that, so this commit turns it into a help message
which will break formatting. See https://gerrit.wikimedia.org/r/#/c/231884
Bug: T110277
Change-Id: I8b52ec8ddf494f23941807638f149f15b5e46b0c
Depends-On: If4e0dfb6ee6674f0dace80a01850e2d0cbbdb47a
Changing current `constructive` button to `progressive` as part of the
consolidation task T110555. Also bringing some minor layout improvements,
aligning values to CSS coding guidelines and cleaning up typos and
superflous (initial) style values.
Bug: T89860
Bug: T126307
Change-Id: I2cc642ddc78f1b436e47261568601be592fe1fa4
Depends-on: I095eddfe5ec2f1fbc81939b67ed467484e15092b
Rewrite a chunky HTML string concatenation party as Mustache template
rendering. This decouples the view from the controller.
Bug: T120921
Change-Id: I3217b80168f89e7b91dbc33a7053865ad3408615
Some extensions, e.g. MobileFrontend, customize the UserLogin and UserCreate
special pages. This change adds the possibility to add some HTML after the warning
and/or error messages are printed to the output. This will be used in
MobileFrontend to get rid of the own userlogin template.
Bug: T87261
Change-Id: Ia81f7c52f08e8dcc73ac751432560c4077d4bd39
TitleBlacklist and AntiSpoof can register extra input fields with a own
message, this message would now be escaped to avoid use of raw html.
Messages: 'titleblacklist-override' and 'antispoof-ignore'
The messages are now handled similar to checkbox 'createaccountmail'
Bug: T85864
Change-Id: I14326c3844904560b66eb8e8eb7d36706caa47da
The TemplateParser class provides a server-side interface to cachable
dynamically-compiled Mustache templates. It currently uses the
lightncandy library to do compilation (which is already included in
the vendor repo).
Also converting NoLocalSettings.php to use it as a proof-of-concept.
Bug: T379
Change-Id: I28cd13d4d1132bd386e2ae2f4f0d1dd88ad9162b
Added a break in the else statement, because
the only time it will go to else will be if
it hits a page (.php), in which case we don't
need to continue any further because we have
the full path needed to access resources.
(Image and link location)
Bug: T88168
Change-Id: If948b12bb09260d6ea119c3478b90225537b9786
With change Ib585e32463765d7eb7d0be5dae54dc828ddd4ca9 the position of
the label for extraInput (from TitleBlacklist or AntiSpoof) was
misplaced outside of the label. This breaks clicking on the label to
check the box. It is also possible to have line break between check box
and label, which is unneeded there.
Bug: T87385
Follow-Up: Ib585e32463765d7eb7d0be5dae54dc828ddd4ca9
Change-Id: I8384621075c6a73cff7575af0380f90bc75e234d
The ConfirmEdit extension presently inserts captcha in the header of Usercreate
and Userlogin templates. The js,if enabled places the captcha before submit
button. A separate 'extrafields' placeholder for captcha is added just before
submit button in Usercreate.php so that captcha position remains consistent,
even if js is disabled. An extend method added to QuickTemplate to append any
data to existing field, rather than setting it with fresh data. Particular use
for 'extrafields' in Usercreate and Userlogin.
Bug: T85192
Change-Id: I82c68814e79cbc5aa250a308862c59fcbb6fd527
This is inconsistent with mobile and is one of the blockers from us
using this form rather than our own on a mobile device.
Also mw-ui-big is a terrible class name and we should be deprecating its
usage.
Change-Id: I56e93429431690cf1b9ef043620b36148e3b4a7a
* Correct nesting of the block generating "Forgot your password?" link
– it would be mistakenly only generated if the user could create an
account.
* Use ->escaped() rather than ->parse() for 'userlogin-resetpassword-link',
as it is used inside a link and allowing wikitext could lead to
undesirable side-effects.
* Remove unused $extraAttrs variable.
* Remove pointless 'size' => '20' for some fields (they are displayed
full-width using CSS).
* Remove pointless .mw-ui-block class, as its styles are always used
for buttons in a VForm.
* Prettify code for hidden fields generation.
Change-Id: If749620bf2eaf58f815cae559383e1a1c842b870
wpCreateaccount was no longer being passed in the POST request,
so the special page thought a login attempt was occurring rather
than an account creation attempt, so it checked against the wrong
token, resulting in session failure errors.
Bug: 71862
Change-Id: I9519cb264be9f587ef4354ba1fd03962a52755a2
Stop littering MediaWiki with globals, provide a common
api for generating them similar to how we do text input
attributes before things get out of control.
Adds
* submitButton
* linkButton
Change-Id: I61bb3c358f755ed9f2153d94b744c1a9da02c456
The fix for bug 15484 (d0439af8) has introduced the behavior of
automatically redirecting users who view the login form when already
logged in to the requested 'returnto' location. If it was not given,
users were redirected to main page instead.
However, that has annoyed people who often switch between several
accounts and have grown accustomed to the old behavior of being able
to log in while logged in. Given that there are no conflicts between
these two features, let's just restore the old behavior when
Special:UserLogin is visited directly (no 'returnto' location given).
This reverts 5dfc57eb which removed then-dead code for showing login
form to logged-in users and tweaks an if() condition.
Bug: 70855
Change-Id: I7e40c13a6ca566b4d66d943c006af9edb6941ee9
While it's "semantically" incorrect (these files are not
ResourceLoader resources), putting them in that subdirectory is a lot
less hassle than introducing a new toplevel directory.
Follow-up to 2b4b9a3f. Discussion that resulted in the toplevel
assets/ took place on I6268d663 (now abandoned).
Change-Id: Iedbfd802457fe35803899e3479540177760ec30b
A <a> should not be followed by a space, because the space is
already before the tag. This gives double spaces when
copy and paste the word and link.
Change-Id: Ia46cafc6ea7359e92a315678020e7815810aac5a
Since d0439af8, trying to view the login form while logged-in just
redirects to the 'returnto' address (or the main page), so this code
is unreachable.
Change-Id: I9ab8ab83172063d8facc491042832513d27f876b