User:DannyS712/Global watchlist/Changelog

Changelog for User:DannyS712/Global watchlist.js

1) Initial version
1.1) Properly link to pages with ' in the page name
1.2) Add a refresh button
1.3) Code cleanup, set up basic infrastructure for dealing with sites with no changes
1.4) Allow user-defined site list, defaulting to ['en.wikipedia.org', 'meta.wikimedia.org', 'commons.wikimedia.org', 'www.wikidata.org'] rather than always using it
1.5) Add a link from the normal watchlist to the global watchlist page, begin first attempt at internationalization
1.6) Add another special page to allow users to configure their site list without needing to manually edit their global.js
1.7) Rescope the code to all be stored in a window variable (window.GlobalWatchlist), allowing refreshing the feed without needing to reload the page
1.7.1) Tweak rescope
1.7.2) Always show the first text field for setting user-defined site lists
1.7.3) Rescope configuration page removal function, to allow multiple entries to be removed without errors
1.7.4) Use encodeURIComponent for page links
1.7.5) Fix addition to again work with titles that contained '
1.7.6) No longer require .org at the end of each user-defined site, but still allow its presence for backwards compatibility
1.7.7) Improve handling of sites with no changes separately, prefill current user-defined settings when the configuration page is opened
1.8) Cleanup code, add proper infrastructure for internationalization
1.8.1) Improve debugging by not always redirecting from the configuration page directly back to the global watchlist
1.8.2) Improve global.js replace function
1.8.3) Ensure that empty sites aren't added to the user-defined list
1.8.4) Improve global.js replace function
1.8.5) Expand scope of messages that can be translated using the new infrastructure
1.8.6) Clean up code, add site aliases for when users are defining custom site lists
1.8.7) List sites without changes separately, below sites with changes
1.8.8) Tweak display of the list of sites without changes
1.8.9) Remove irrelevant notice about overwriting settings when saving, since current settings are prefilled
1.8.10) Empty the list of sites without changes when the feed is refreshed
1.9) Add a loading icon while waiting for the feed to be retrieved, both on initial display and when the feed is refreshed
1.9.1) Use seperate style sheet rather than only relying on inline styles
1.9.2) Set &redirect=no in page links
1.9.3) Store window.GlobalWatchlist with spaces to improve readability
1.9.4) Add history link next to each entry
1.10) Separate out debug functions, use more informative notes when logging
1.10.1) Add getState function, to view current script variables' statuses
1.11) Begin conversion to using OOUI
1.11.1) Convert configuration page to also use OOUI
1.11.2) Tweak CSS for configuration page layout
1.11.3) Convert to OOUI label for sites with no changes
1.11.4) Add OOUI label for user defined site list
1.11.5) Combine function retrieval function to use the same for both local and foreign
1.11.6) Fix logging of objects added in 1.10
1.11.7) Code cleanup
1.11.8) Only add $('<hr>') before the list of sites with no changes if at least 1 site had changes, otherwise it would create two such elements in a row
1.11.9) Improve logging, use more jquery, and increase code readability
1.11.10) Begin migration to dedicated config objection (manual edits to global.js only)
1.11.11) Finish backend of migration to dedicated config objection
2) Add user-customizable filtering of bot edits, anonymous edits, and minor edits, with GUI configuration on settings page
2.1) Improve skin support, migrate to OOUI for all links except from watchlist, add "reset changes" for config page
2.2) Fix setHeading for minerva skin, move to dedicated init function
2.2.1) Add label for sites with changes, refactor hasChanges
2.2.2) Fix addition of label
2.3) Add Bengali translations
2.3.1) Add a few French translations
2.4) Add "mark as seen" buttons for each site
2.4.1) When marking a site as seen, don't hard refresh the page
2.4.2) Code cleanup, update translations
2.4.3) Additional migration to object notation
2.4.4) Work around API's limit of only marking 50 pages at a time as seen
2.4.5) Add "mark all as seen" button for all sites (, )
2.4.6) Continue using objects, separate out marking as seen
2.4.7) Only show "mark all as seen" if there are multiple sites with changes
2.4.8) Add destructive flags for marking as seen
2.4.9) Ensure double refresh doesn't create duplicates
2.4.10) Introduce helper OOUI.makeButtonInput
2.4.11) Clean up, add runtime.presetFlag
2.5) Update translations, message tweaks
2.5.1) Always prefill current sites, even if using the default
2.6) Add link to see changes for each page
2.6.1) Add linker helper
2.6.2) Patch recursive markSiteAsSeen calls
2.6.3) Reduce code duplication, clean up linker
2.7) Add unwatch links
2.7.1) Clean up code
2.7.2) Change from 3 column split to 2
2.7.3) Tweak debug info
2.7.4) Add separate message for multiple changes to the page, allow using variables in messages
2.8) Make compatible with minerva skin, other miscellaneous updates
2.8.1) Fix call to checkAll
2.8.2) Objects, clean up settings
2.9) Introduce mode helper
2.9.1) Fix mobile api settings
2.9.2) Fix double $('<hr>')s
2.9.3) CLean up, objects
2.9.4) Add template helper to reduce message calls
2.9.5) After unwatching a page, remove unwatch link, strikethrough entry
2.9.6) Remove template helper, clean up messages, allow _ in script import
2.9.7) Add "as of" at the top
2.9.8) Remove runtime helper, expand use of config
2.9.9) Simplify initialization, use config
3) Retrieve wikidata labels for properties and items
3.0.1) Bugfix - correction of linking added in 3
3.0.2) Bugfix - correction of default filters added in 2.9.6
3.1) Overhaul config
3.1.1) Bugfix - correction of label retrieval affected by 3.0.1
3.2) Show new page creations
3.2.1) Also retrieve wikidata labels for new page creations
3.2.2) Allow configuring what types of changes to show (edits and/or page creations)
3.2.3) Add confirmation before marking all sites as seen
3.3) Show log entries
3.3.1) Make default options consistent
3.4) Add basic validation to filter options
3.5) After unwatching a page, replace the unwatch link with "rewatch"
3.6) Add basic validation to site options
3.6.1) Code cleanup
3.7) Use translated messages from core that already exist
3.7.1) Fix message for logs links added in 3.7
4) Deprecations of backwards-compatible code
4.1) Migrate messages to mw.msg() calls
4.1.1) Code cleanup
4.1.2) Add ban as a valid language code
4.1.3) Use core newpageletter message for new page "N"
4.2) Show bot and minor flags next to edits, using core localized messages, if applicable to all edits
4.2.1) Allow unwatching from log entries by using page titles rather than IDs
4.2.2) Fix visual processing of pages that are (un)watched
4.2.3) When unwatching a page, also apply visual processing to talk page (and vice versa)
4.2.4) Use OO.ui.ProgressBarWidget(); for the progress bar
4.3) Add basic option not to group edits by page
4.3.1) Code cleanup
4.3.2) Add stricter validation (language.project must be a valid combination, not just separately valid)
4.3.3) Code cleanup
4.3.4) Fix encoding of double quotes
4.4.0) Add framework for separate tests
4.4.1) Add mnw as a valid wikipedia language
5) Add option to switch from development branch to stable branch
5.1) Use entirewatchlist for marking a site as seen, rather than a list of titles
5.1.1) For wikidata entries, show the Qid, etc. in addition to the retrieved label
5.1.2) Add links to edit each site's watchlist
5.1.3) Code cleanup
5.1.4) Fix typo bugs
5.1.5) Begin using eslint
5.1.6) Continue linting
5.1.7) Save framework for checking if settings have been changed
5.2) Clean up API calls
5.2.1) Update translations
5.2.2) Use formatversion 2
5.2.3) Code cleanup
5.2.4) More cleanup
5.2.5) Use CSS instead of a <center> tag
5.2.6) Use CSS instead of a <center> tag
5.2.7) Use CSS instead of a <center> tag
5.2.8) Use CSS instead of a <strike> tag
5.2.9) Save work on autorefresh
5.2.10) Consider a site as having no changed if all pages have been unwatched, for autorefresh
5.3) Add OOUI icons
5.3.1) Fix checkChangesShown logic relating to if the feed should be refreshed
5.3.2) Save work on background refresh for live updates, and lint
5.4) Add live updates
5.4.1) Code cleanup
5.4.2) Add OOUI icons for live updates
5.4.3) Combine API helper functions
5.4.4) Cleanup
5.4.5) Cleanup
5.4.6) Fix use of forEach with validation
5.4.7) Tweak validation to return an array of invalid sites, rather than just one
5.4.8) Cleanup
5.4.9) Cleanup
5.4.10) Add new wikis to validation (, , , )
5.4.11) Validate wikis against sites that the user has a merged SUL account on, rather than a hard-coded list
5.4.12) Linting
5.4.13) Activate more eslint rules
5.5) Add an option to opt out of confirmation before marking all sites as seen
5.6) Notify the user regarding the result of saving the settings
6) Finalized previous updates, port to stable version
6.1) Remove support for site aliases
6.1.1) Code cleanup
6.1.2) Cleaner implementation of parseOptions
6.1.3) Don't create a new toggle element each time the options are reset
6.1.4) Don't create a new checkbox element each time either
6.1.5) Separate settings from configuration, cleanup
6.1.6) Fix filter rendering that prevented loading the "not" filter settings
6.2) Add a fast mode
6.2.1) Activate some of the remaining eslint rules
6.2.2) Show that the refresh button is disabled during live updates
6.3) Retrieve labels for lexemes as well
6.3.1) Make buttons sticky when scrolling
6.3.2) Minor cleanup
6.3.3) Continued cleanup
6.4) Show edit summaries
6.5) Show user info, fix links in summaries
6.5.1) Make group by page toggleable on watchlist view
6.5.2) If a user makes multiple edits to a page, and no one else edits, show that user's info
6.5.3) Show that the group by page toggle is disabled in fast mode
6.5.4) Fast-mode related cleanup
6.5.5) Activate more eslint rules
6.5.6) Fix watch/unwatch links
6.5.7) Combine processUnwatched and processRewatched
6.5.8) Clean up
6.5.9) Minor tweaks, including a simpler filterE
6.5.10) Activate a few more eslint rules
6.5.11) Quick hack to disable the group page toggle in live mode
6.6) Create actual QQQ documentation
6.6.1) Remove specifying gw-msg- in each message definition, add it in later
6.6.2) Associate messages with translation units
6.6.3) Add init case for QQX documentation helper script
6.6.4) Tidy up a bit
6.6.5) Update translations with new i18n script
6.6.6) Show the message name when using uselang=qqx
6.6.7) Use the core translation for the 'x' when a user has made multiple edits
6.6.8) Activate more eslint rules
6.7) Factor out a GlobalWatchlist.Site class
6.7.1) Relint, cleanup
6.7.2) Update tests
6.7.3) Continue moving methods to the Site class
6.7.4) Move the api methods to the Site class
6.8.0) Show basic tag info
6.8.1) Parse the tag descriptions
6.8.2) Minor fixes
6.8.3) Combine watch and unwatch methods
6.8.4) Relint
6.8.5) Cleanup
6.8.6) Update tests
6.9) Use checkboxes instead of toggles for settings
6.9.1) Store OOUI elements
6.9.2) Use promises, cleanup
6.9.3) Separate processing of groupPage
6.9.4) Lint, lots of cleanup
6.9.5) Fix diff link for grouped edits
6.9.6) More use of promises
6.10) Fetch watchlists in parallel
6.10.1) Cleanup
6.10.2) Don't query tag info in fast mode
6.10.3) Save the Site objects instead of creating them each time
6.10.4) Remove last use of async/await, add messages to translation, remove old code, reduce esversion to 6
6.10.5) Marked for translation
6.11) Add jsDoc
7) No changes from 6.11, just syncing with the stable version
7.1) Count the number of edits each user makes if multiple edit a page
7.1.1) Don't show 1x for users with 1 edit
7.1.2) Update translations
7.1.3) Reduce OOUI footprint
7.1.4) Move markAllAsSeen to a proper function, tweak find-and-replace
7.2) Update CSS, move addRow to a proper function
7.2.1) Update documentation and tests, add a separate helper method to retrieve the api instance so that tests can override it
7.2.2) Mostly testing improvements
7.2.3) Add a lot of tests
7.2.4) Update translations
7.2.5) Split large functions for ease of understanding and parsing by others
7.3) Handle retrieving more than 50 wikidata ids rather than dying, add basic error handling for the api
7.3.1) Handle failure to retrieve wikidata ids for deleted entries
7.3.2) Implement some of Mediawiki's jQuery coding conventions
7.3.3) Cleanup
7.3.4) Add notes as part of investigating splitting the script
7.3.5) Don't show a colon for an edit summary if no summary was provided
7.3.6) Add max-statements-per-line rule and make pass
8) No changes from 7.3.6, just syncing with the stable version
8.0.1) Link to meta documentation in edit summaries
8.0.2) Add more debugging logging
8.0.3) When logging debug statements, also push to an array for easier retrieval
8.0.4) Fix longstanding bug in settings processing
8.0.5) Update translations
8.1) Update CSS to handle RTL text
8.1.1) Update CSS to handle strikethrough with RTL text
8.2) Make feed for each site collapsable, as well as the list of sites with no changes; fix link text
8.2.1) Update the check for if sites are showing changes following changes for collapsing
8.2.2) Don't fail on edits with hidden usernames