* Update colorpicker to something more modern
* Replace terrible old colorpicker with Coloris (https://coloris.js.org/)
* Add CSS for dark theme for Coloris to Gradation CSS
* Nuke files for old colorpicker
Fixes#3035
---------
Co-authored-by: Cocoa <momijizukamori@gmail.com>
A line I added in #3100 was failing in testing because there was no
web request object defined in that context. This was the error:
Can't call method "headers_in" on an undefined value at
dw/cgi-bin/DW/Media/Base.pm line 140.
This adds an undefined value check to make sure everything proceeds smoothly.
@rahaeli says this is the line of code that prevents an admin from
reversing their own suspension if they accidentally suspend
themselves. (Which with the amount of spam accounts we've been dealing
with lately, is not that hard to do.)
It prevents any console command from being executed by a user who
doesn't have a statusvis of V.
There are a LOT of other statusvis codes! Looking at the available
helper methods, `is_inactive` seems like the right one to use. It
encompasses the S (suspended), D (deleted), and X (expunged) codes.
But it still needs to be overridden.
So: don't allow a deleted/suspended/purged user to run a console
command... unless the user has the suspend priv.
Fixes#3111.
Users with email addresses at these common domains complained
about having to confirm they had not misspelled a similar domain.
Add these two to the list so that they are no longer flagged as
possible misspellings.
Fixes#2906. Fixes#3118.
* Basic hook for detecting spam domains in fields
* Clean up spamcheck hook
* Add spamblocklist as an include and then load from that
* suggested changes for hook (untested)
---------
Co-authored-by: Cocoa <momijizukamori@gmail.com>
Co-authored-by: Kareila <kareila@dreamwidth.org>
* Add bilibili to embeds
* Add rumble to embeds
* add nekocap to embeds
* update criticalcommons embed code
* Fiddle with nekocap embed
* Remove queries at end
* Remove nekocap for now
* Update tests
* update test count
* Add kofi userhead stuff
* Issue with hyphen?
* Adjust module casing in case that helps
* Also update fanfiction.net userhead while i'm at it
* Add ffnet user icon to repository
I started to just silence the undefined variable warnings, realized
the same code lines were repeated in another part of the page, and
decided it would be better to move the duplicated code into a
shared subroutine.
Denise brought up the fact that buying premium time for
someone else's paid account, while a nice gesture, shouldn't
be allowed because it forces the account's existing paid time
to be upgraded to a shorter amount of premium paid time.
Users can buy premium time for their own paid accounts, but
not other people's.
This is the bare minimum of code needed to allow users to tell us
their IDs for use with the new version of Google Analytics.
It doesn't do anything with that information yet.
* new module cgi-bin/DW/Setting/GoogleAnalytics4.pm, which is more or less
a clone of cgi-bin/DW/Setting/GoogleAnalytics.pm with tweaks
* both settings modules are retained to allow for a transition period;
the labels on /manage/settings are "Google Analytics ID" and
"Google Analytics ID (v4)"
* new userprop ga4_analytics
* new user method ga4_analytics
I couldn't find a format guideline for the ID values. The setting module
enforces a format of "G-" followed by at least 10 alphanumeric characters,
saved as uppercase. If that turns out to be wrong, we can tweak it later.
- Add 'No Messages' display text for empty inboxes
- Refactor header/footer code for easier updates
- Add code to mark messages read on normal click on action links
- Add trash icon to delete buttons
- Add left padding to messages on small media queries
- Correct which buttons show when
- Retain collapsed messages on actions
- Update message count in folder menu when making changes to messages
- Fix current page link color in pagination
* revert the reversion
* tweaks pt 1
* better error checking on arguments to DW::Pay functions.
they don't behave nicely when given bogus inputs,
causing the widget to quietly bomb out from under us.
* also check additional logic in allow_account_conversion
for permitting paid time to be applied to a premium account.
* note that the 0.7 is expressed as a constant elsewhere.
possibly this whole code block should be redefined as
a hook since it assumes dw-nonfree business logic.
* tweaks pt 2
This isn't pretty, but it prevents the scenario where widget
errors disappear into a BML block that was being ignored.
That's why we were seeing the problem with purchase attempts
disappearing instead of telling us what went wrong.
One day, someone will rewrite LJ::Widget not to use BML.
I found where the table header link colors were specified
and dropped in a rule for a background color so that the
links would be legible again.
It was very obvious on the admin/statushistory page, but
this should affect any Foundation pages with similarly
defined table header elements.
I don't know if this is the best solution, but it seems
like an improvement. I did check legibility in all the
different site schemes.