Commit graph

38 commits

Author SHA1 Message Date
Jack 2f29f7b834
Using html templating to split html into smaller files (#2793)
* split html into smaller files

* added remove plugin to remove leftover split html files from the public directory

* fixed merge
2022-04-03 16:40:41 +02:00
Miodec 7a76622cfb removed old link 2022-04-02 02:06:06 +02:00
Miodec 6554b8b0ec fixed some styling issues caused by the minified html 2022-03-31 19:34:39 +02:00
Miodec 417d81883d removed section about sw cache (no longer used) 2022-03-30 00:07:31 +02:00
Miodec 9d3a2d630b changed checkboxes to use check icons instead of changing background color
closes #2776
2022-03-27 20:22:19 +02:00
Evan e60baef095
Add Show Average Accuracy and Make Show Average Speed Show CPM (#2756) Ferotiq
* show cpm for always show cpm

* Add show average: acc and make speed work for cpm

* eqeqeq

* round

* rename to remove clutter

* rename and change icon

* Combine functions

* remove comment

* Update index.html

* rounding if show decimal places is disabled

Co-authored-by: Miodec <bartnikjack@gmail.com>
2022-03-24 13:58:32 +01:00
Bruce Berrios 76c230315c
Add quote search command (#2747) 2022-03-22 19:08:50 +01:00
Jack 6b49a3c5e7
v1.14.1 (#2745)
* updated default config to fix incorrect font button being highlighted

* Convert account controller to ts (#2731)

* using modular sdk

* removing last script

* replacing more code

* unused code

* removed unused code

* removed unused code

* importing auth

* using analytics controller

* importing auth and analytics

* importing auth

* updated git ignore

* fixed path

* removed live config from gitignore

* added error message when failing to initialize firebase

* added live config
using live config when building production

* removed unused code

* fixed incorrect function use

* added example config

* added a step to the contributing guide

* optional steps

* fixed path

* using example in source code so that github actions dont cry like little babies

* using function correctly

* using function correctly

* ignoring live

* removed

* added action webpack config

* bruce said "no-no"

This reverts commit 0a1e5e1660.

* Fix

* Add ignore

* updated instructions

* using correct functions

* using correct function

* missing parameter

* using correct function

* using correct function

* removed ts ignores

* using new functions

* removed refresh

* using new functions

* merge fix

* fixed merge

* regenereated lockfile

* using correct function

* defaulting to the email thats already entered

* storing default snap in a file

* optional parameter

* made parameters non optional

* converted file to ts

* removed unused parameters

* removed unnecessary optional chaining

* destructuring array

* added a function to create error message

* removed type

* removed duplicate gitignore

* removed no check

Co-authored-by: Bruception <bberr022@fiu.edu>

* Include dev branch in CI (#2739)

* Decreased filesize and introduced chunk splitting (#2732) Rizwanmustafa

* Decreased filesize

* Introduce splitting for vendors

* Added HTML webpack plugin for dynamic change of chunkhash and minification on production

* Added bundle analyzer plugin for webpack

* Prevent analyzer from opening on its own

* updated contributors list

* Package lock update

* Created separate webpack config for analysing bundle

* Standardize paths in webpack base config

* Added devtool in dev webpack config

* Minor issues

* Based audit config off of the production config, saved exact packages and renamed some constants

* Saved exact version of packages

* Rename Config

* Added intellisense for webpack configs

* Added script for using audit config

* Simple changes

* Removed unnecessary cd and replaced webpack with npx wepback

* added npm script accessible from root dir
since audit is now a separate script, reenabled auto opening

Co-authored-by: Miodec <bartnikjack@gmail.com>

* Enable live reloading (#2738) bruception

* Enable live reloading

* Update scripts and documentation

* Fix resolve

* Use resolve

* Fix layoutfluid timer warnings (#2740) Ferotiq

* reduced date-fns import size

* using inline source map so that code is debuggable

* removed tinycolor2 dependency

* Migrate Chart.js to 3.7.1 (#2735) DanGonite57

* Migrate Chart.js to 3.7.1

* Show funbox label with StartGraphsAtZero disabled

* Fix label positioners

* Include dev branch in CI (#2739)

* Remove draw animation

* Avoid RangeError with no data

* Disable account chart initial render animation

* Add temporary type assertion for options.animation

* Test disabling animations via updateColors

* Test re-update chart after resetting animation duration

* Test dataset specific animation duration

* Disable animations for now

* Remove unused annotation

Co-authored-by: Bruce Berrios <58147810+Bruception@users.noreply.github.com>

* installed dev dependency to stop audit from complaining

* removed mr mime dev dependency
regenerate package-lock

* not updating live burst when its disabled

* using vanilla js to increase performance

* updating chart once instead of 3 times

* made log async

* increased minimum wordset length to disable repeating words to 4
this stops infinite A B C sequences
closes #2742

* increased tick padding

* added some padding to stop data points from being cut off

* fixed account graphs not being responsive

* removed unnecessary style

* updated button active color

* Server version (#2746) Bruception

* Add server version

* typo

* Fix logic

* Moved to utility

* Actually save version

* Move logic order

* updated metric name

* removed unnecessary else

Co-authored-by: Bruception <bberr022@fiu.edu>
Co-authored-by: Bruce Berrios <58147810+Bruception@users.noreply.github.com>
Co-authored-by: Rizwan Mustafa <rizwanmustafa0000@gmail.com>
Co-authored-by: Evan <64989416+Ferotiq@users.noreply.github.com>
Co-authored-by: DanGonite57 <danzinc57@gmail.com>
2022-03-21 21:22:47 +01:00
Jack fe668e4811
Moved firebase to new modular version 9 sdk (#2727)
* using modular sdk

* removing last script

* replacing more code

* unused code

* removed unused code

* removed unused code

* importing auth

* using analytics controller

* importing auth and analytics

* importing auth

* updated git ignore

* fixed path

* removed live config from gitignore

* added error message when failing to initialize firebase

* added live config
using live config when building production

* removed unused code

* fixed incorrect function use

* added example config

* added a step to the contributing guide

* optional steps

* fixed path

* using example in source code so that github actions dont cry like little babies

* using function correctly

* using function correctly

* ignoring live

* removed

* added action webpack config

* bruce said "no-no"

This reverts commit 0a1e5e1660.

* Fix

* Add ignore

* updated instructions

* using correct functions

* using correct function

* missing parameter

* using correct function

* using correct function

* removed ts ignores

* using new functions

* removed refresh

* using new functions

* merge fix

* fixed merge

* regenereated lockfile

* using correct function

* defaulting to the email thats already entered

* moved lines

Co-authored-by: Bruception <bberr022@fiu.edu>
2022-03-19 12:33:25 +01:00
Bruce Berrios eb79ffbc00
Add quote length filter (#2705) Bruception
* Add quote length filter

* Clear filters when closing search

* Add select2 style selectors

* updated placeholders

* fixed styling

Co-authored-by: Miodec <bartnikjack@gmail.com>
2022-03-15 21:14:17 +01:00
Jack ab27950bcc
Using date-fns instead of moment (#2707)
* installed date fns

* using date fns

* using date fns

* using date fns

* using date fns

* using date fns

* removed moment

* removed last traces of moment
2022-03-15 19:34:50 +01:00
Miodec 2ed9374d8d removed unused dependencies 2022-03-15 14:40:52 +01:00
Bruce Berrios fabc0e7562
Fix ApeKeys management for unauthed users (#2694) 2022-03-13 13:21:54 +01:00
Jack 34e730c6fc
Custom themes storage (#2660)
* Fixed typo

* Created method for adding theme in the UserDAO:

* Created function for checking if custom theme object is valid

* Exported the isThemeValid function

* Added controller for adding customTheme

* Created route for adding custom theme

* Created rateLimit for adding customTheme

* Fixed typo

* Fixed incorrect color length

* Added method for removing, getting and editing custom themes on the backend

* Moved validations from controllers to routes and some aesthetic changes in the user dao

* Started working on frontend and some minor changes in the backend

- Commandline support for custom themes
- Allow user to shift to their custom theme using Shift-click
- Updated the backend to be compatible with some changes
- Create a new custom theme for users with old system to prevent their custom theme loss

* Fixed custom theme type in ape and now new custom theme is created if user clicks the custom tab and doesn't already have one

* Fixed ape type issue

* Format html file

* Fixed wrong tab being active

* Created new custom theme edit section

* Fixed bug where user theme would have impact on icons with custom theme

* Update customThemes API

* Updated the custom theme sharing option to work with multiple custom themes

* Started working on the UI for custom theme buttons

* Added DOM event for clicking custom theme buttons

* Updated the updateActiveButton to work with multiple custom themes

* Removed favorite button for themes and fixed bug where double theme buttons were being added

* Fixed bug where preset theme buttons were not appearing if user has applied custom theme on website load and refreshed

* Moved DOM event for sharing custom theme to more appropriate place

* Integrated the save custom theme button with the changes

* Fixed bug with custom theme tab buttons and theme buttons

* Fixed commented div

* Replaced 'sds' with a meaningful message for custom theme buttons

* Integrated the delete button for deleting custom themes and fixed bug where id of newly added custom theme was not set properly

* Integrated the add button and name field for custom themes editing

* Added addCustomThemeWrapper element

I added it before but seems like vscode and other editors can't handle large files

* Removed some debug statements

* Removed some more debug statements

* Used parial types for custom theme. Thanks Bruce

* Removed unnecssary try catch blocks. Thanks Bruce

* Rephrased custom theme API messages

* Set new theme fields explicitly to prevent validtion failures and rephrased API message

* Replaced let with const

* Replaced let with const for _id

* Replaced let with const and used nullish coalescing

* Improved code quality in User DAO

* Strict equality in user DAO

* Moved validation scheme to a variables at the top of file

* Fixed bugs with strict equality checks

* Renamed themeId to themeID for consistency

* Made customThemes a required type in db to remove unnecessary undefined checks

* Uncommented GET API endpoint

* Prevent colorId being updated on custom theme name chnage

* Removed debug log

* Added loader on api calls

* Commenced shift from customThemeIndex to customThemeId

* Added required to themeColors schema

* Temp fix for validation fail for customThemeId

* Changed default value of customThemeId back to ''

* Temp fix for validation fail for customThemeId

* Fixed minor bug

* Fixed bug where account-controller would pass undefined to ThemeController.set

* Created methods in db.ts for adding, deleting and editing custom themes. Created new interface for raw custom themes and renamed ape methods

* Removed repeating code in account-controller

* Removed repeating code in theme-picker

* Removed setThemes in config

* Fixed minor bug

* Removed repeating code in user DAO

* Made custom themes available to registered users only

* Fixed minor bug

* Removed debug log and updated custom theme commands before showing list

* Added popup for confirming custom theme deletion

* Added custom option for random theme

* Minor improvement

* Workaround for local config firing before firebase initalization

* Removed debug log and created workaround for migration

* Added legacy customTheme config field

* Replaced workaround

* Changed put to patch

* Changed put to patch

* Added customTheme field back

* Integrated customTheme into to feature

* Added notifications for users when they access custom theme cmd option without being logged in

* Removed debug logs and comments

* Replaced literals with constant. Thanks Bruception

* Fixed wrong querySelector parameters and reset custom theme colors after deleting a custom theme

* added notification on save

* duplicating object instead of referencing

* Added return type on function

* Fixed wrong notification code

* spreading default config instead of referencing

* added index, psas, configs, presets

* camel_case

* added ape keys, leaderboards, results, quotes

* Modified setCustomTheme

* Modified setCustomThemeId

* Added tip for random themes settings

* Modified setCustomThemeId

* Now load custom theme before account loading

* Added custom theme compatibility for non-logged in users to theme-controller

* Now update tabs and buttons on custom theme config value change and modified boolean checks to use customTheme instead of customThemeId

* Fixed bug

* Refactoring in theme-controller.ts

* Enable custom theme support in commandline for logged out users

* More refactoring in theme-controller.ts

* Added custom theme compatibility for logged out users

* Removed double events in settings.ts and now turn on custom theme upon applying

* Fixed bug and recursive call

* Fixed bug

* Fixed random theme custom option

* Fix jquery wrong syntax

* Readded notification upon custom theme edit

* One notification upon error only

* Change notification type

* New custom themes now have default colors

* Notification on custom theme edit for non-logged in users

* Refresh buttons upon settings load

* missing gitignore

* updated message

* updated message

* setting config to unchanged when logging in to avoid issues with applying db config

* reverted some over complicated code, excessive auth checks

* removed customthemeid from config

* not setting custom theme id

* removed all customthemeid references

* removed commented code

* removed name field

* added edit button

* unused file

* removed popup

* removed add button, removed text

* removed duplicate code

* added simple popup checkbox support

* whitespace

* added custom theme popups

* removed warning when no custom themes were found

* removed add button click handler

* added function to save custom theme

* saving current theme not default

* removed custom theme id from default config

* not creating new theme by default, just applying

* reacting to customThemeColors save

* unnecessary function call

* removed unused code

* small refactor

* spacing

* unnecessary code

* turned off warnings for non null asertion

* showing theme name when randomising customs

* Revert "turned off warnings for non null asertion"

This reverts commit 433e1dc767.

* optional with default instead

* fixed custom theme colors always loaded on page load

* fixed custom theme buttons not showing up

* fixed various loading issues

* fixed custom theme edit styles

* showing custom in footer, removed unused code

* savaing custom theme colors
fixed typos

* changing theme

* updated custom theme buttons styling

* scaling custom theme buttons on hover

* not updating settings on theme event

* fixed quote id

* only showing custom themes when logged in

* updating save button text depending on auth state

* fixed double notification when trying to save too many custom themes

* fixed custom theme saving when signed out

* removed user check from db

* fixed exception when signed out user tried to open the custom themes command line

* ignoring file when compiling

* typo

* avoiding href errors

* setting href to an existing file
this fixes firefox custom themes not working

* better hex color regex

* spacing

* renamed function

* typo

* destructuring request

* removed unused function

* removed unused code

* removed unused code

* type fix

* removed non capturing group

* saving colors to config before saving custom theme

* encoding in base64

* added handler that can load themes in the old and new format from the url

Co-authored-by: Rizwan Mustafa <rizwanmustafa0000@gmail.com>
Co-authored-by: Rizwan Mustafa <69350358+rizwanmustafa@users.noreply.github.com>
2022-03-09 19:48:22 +01:00
Bruce Berrios 2dba957adc
Add public api docs (#2656) by bruce
* Add public documentation

* typo

* added hard limit on the leaderboards

* ignoring worker when compiling

* added leaderboard routes

* leaderboards accept apekeys

* Fix docs

* Fix

* Specify parse base

* Add ape rate limiter

* added documentation link

* updated message

Co-authored-by: Miodec <bartnikjack@gmail.com>
2022-03-09 13:02:37 +01:00
Miodec f144a03336 Merge branch 'master' of https://github.com/Miodec/monkeytype 2022-03-07 14:39:14 +01:00
Miodec d0d1ec10d3 typo 2022-03-07 14:24:04 +01:00
Evan 1622f37efd
Add Custom Text Storage (#2648) by Fero
* Add custom text

* changed function return type

* added popups for saving and deleting saved texts

* moved saved texts to their own file
logic changes
styling changes

Co-authored-by: Miodec <bartnikjack@gmail.com>
2022-03-07 14:16:00 +01:00
Miodec 8049cb661d hiding ape keys for now 2022-03-06 18:37:02 +01:00
Jack f221326f47
Added Ape Keys Popup (#2642)
* added disabled field to simple popup input

* inverted disabled logic

* fixed initial value completely not working in simple popups

* loading ape keys into the snapshot

* added type for ape keys

* only vertical resize for textareas

* added before init function
added can close parameter
correclty handling textearas

* storing active popup in a variable

* fixed click handler

* hiding text element if string is empty

* updated ape keys types

* added click handler to open ape keys popup

* added simple poopups for generating, editing and deleting ape keys

* added ape keys popup

* updated ape key type

* ape keys is optional

* not getting ape keys by default

* added function to get ape keys

* refactor

* using last used on property
2022-03-06 09:34:48 -06:00
zeval fea83b38c2
Simple coherence fix in theme randomizing settings (#2607)
* Simple coherence fix in theme randomizing settings

* Fix spelling consistency

Co-authored-by: Evan <64989416+Ferotiq@users.noreply.github.com>
2022-02-28 18:59:48 -06:00
Miodec dd4d5551de fixed wpm acc and burst flashing for new users 2022-02-27 20:11:01 +01:00
Ferotiq 34ac755630
Add dynamic keymap legend style (#2592) by Ferotiq
* Add dynamic keymap legend style

* Speed

* make it work with all layouts

* Fix bug

* Update layout-emulator.js

* Update layout-emulator.js

* mac fix

* we didn't need layout state

* make quote show up

* remove some

* Rename

Co-authored-by: Miodec <bartnikjack@gmail.com>
2022-02-27 01:11:52 +01:00
Octahedron a0f911961f
added "show average" setting (#2551) by octahedronv2
* added "show average" setting

hopefully this doesn't break everything :)

* Delete config-schema.js

* Delete commandline-lists.ts

* Delete config.ts

* Delete db.ts

* Delete index.html

* Delete modes-notice.ts

* Delete settings.ts

* Delete types.d.ts

* added show average setting

* changed the capitalization of ONE character

* Rounded the wpm calculation when mode is PB or AVG

* Only display average if user is logged in

* Only display average if wpm > 0

and by extension, only when the user is logged in.

* changed look of average display

Co-authored-by: Jack <jack@monkeytype.com>
2022-02-21 02:49:33 +01:00
Miodec e93fe5aa9d removed unnecessary property 2022-02-20 17:13:08 +01:00
Miodec 775fe34851 added auto switch theme
allows auto switching between light and dark theme based on system theme
closes #2088 and #1629
2022-02-20 17:07:02 +01:00
Miodec 4ef34817ae added 'export csv' button to the account page
(only exports filtered results)
closes #919
2022-02-20 14:30:41 +01:00
Miodec 4d5c4dacbb added smoothing slider to the account page
closes #2470
2022-02-20 01:52:39 +01:00
Miodec c3825ab54e reworked leaderboards media queries. should fix #2488 2022-02-19 15:52:14 +01:00
Jack e4a7c8b5e9
Layouts rewrite (#2529)
* added types

* converted qwerty to new format

* added type

* removed keymap structure

* updated space styling

* fixed keymap types

* removed type

* initial keymap element building (only supports staggered for now)

* using id instead of class

* using id

* moved class changes to the keymap file

* fixed matrix key count

* fixed split and matrix layouts

* fixed alice

* removed unused code

* removed unused code

* converted layout emulator to new format

* removed unnecessary field

* using type

* added layout

* added default layout

* added alias

* converted key flashing to new logic

* using new logic

* using new logic in mode next

* fixed iso alice

* converted some layouts

* added layouts json

* added functions to get layouts

* made getlayout synchronous

* updated layout types

* using new function

* added layout json schema validation
closes #2516

* converted ansi layouts to the new format

* modified schema

* fixed the rest of the layouts

* switched function back to async
2022-02-18 18:02:35 +01:00
Miodec fe8f8e6851 added popup wrapper to leaderboard 2022-02-11 01:46:06 +01:00
Miodec 28be87cb6c added max accuracy and consistency
closes #2460
2022-02-10 13:02:32 +01:00
Miodec f5ca66545c only adding script when needed 2022-02-10 12:54:25 +01:00
Miodec 8eab2b47b5 changed the way settings group are handled
modified all html buttons
added select mode to the settings
replaced language, layout and keymap layout with select dropdowns
2022-02-10 12:53:06 +01:00
Miodec 600c6631a8 locally hosting select2 2022-02-10 01:22:04 +01:00
Miodec 047b7cf0fe removed unused code 2022-02-10 01:17:49 +01:00
Miodec 351cc2bcb2 added indicate typos: replace,
added indicate typos: below,
removed indicate typos: on
closes #2444
2022-02-09 19:18:54 +01:00
Bruce Berrios 345740db5f
Separate backend and frontend dependencies (#2441) by Bruception
* Add request validation to user endpoints

* Remove tag id log

* Remove verbs from endpoints

* Remove old code

* Remove uid

* Fix

* Remove name from URI

* Rename utils

* Fix

* Move prettier

* Update gulp file

* Add additional scripts

* Update package-lock

* Update contributing.md

Co-authored-by: Miodec <bartnikjack@gmail.com>
2022-02-08 20:33:41 +01:00
Renamed from static/index.html (Browse further)