* begin implementing global webhooks
* add checklist item scored webhook
* add pet hatched and mount raised webhooks (no tests)
* fix typo
* add lvl up webhooks, remove corrupt notifications and reorganize pre-save hook
* fix typo
* add some tests, globalActivity webhook
* fix bug in global activiy webhook and add more tests
* add tests and fix typo for petHatched and mountRaised webhooks
* fix errors and add tests for level up webhook
* wip: add default data to all webhooks, change signature for WebhookSender.send (missing tests)
* remove unused code
* fix unit tests
* fix chat webhooks
* remove console
* fix lint
* add and fix webhook tests
* add questStarted webhook and questActivity type
* add unit tests
* add finial tests and features
Uses a variable for the number instead of hard-coding it in the locales files.
Removes some old, unused locales strongs and an associated variable
from when we had a million users.
* Client POC
We need to wrap each draggable region it its own div or else the
"draggable" element will conflict with each other. This screws up the
styling but that is totally fixable
* Ah that ref was being used after all, changing back
* Scaffold out a new callback for when we drag these things
Next is going to be the hard part: I need to save the sort order for
these to the database. I don't even know if there is a schema but hey
this is the best place to start
* Firefox caching is the problem: don't actually need the wrapper div
So I guess I should try this in chrome and see how it works then come
back to firefox and figure out what the heck is going on
* Scaffolding out our API call to save the sort order
The endpoint doesn't exist yet so we will need to add that
* Ok we are now calling our API endpoint to reorder these things
Of course it doesn't exist yet so you get a 404 when you try, but that
is ok
* Defining api endpoint, a work in progress
In particular I really had ought to use _id for these too, it appears
that the primary way we detect order doesn't even use "key" at all.
* Switching to using the pinned item UUID
This has much better results, but of course the server and client logic
don't match now. Will have to keep working on my splice to make sure
that they are the same
* I thought this would fix our server/client mismatch but it is not it
Something is really wrong with my logic somewhere, maybe I need to
update the db step?
* Moving this logic to the "user" rather than "tasks" and key off path
Path is unique and is less finiky than dealing with string comparisons
with ids. Unfortunately everything is still not working... I suppose
user.update() doesn't care about the position?
* This client code caused quite a lot of problems if you dragged fast
We don't really need it it seems, so off it goes
* Updating markup and CSS so it actually looks good.
Everything is working horray!!
I did just notice the following bug: the popover text sometimes makes it
very annoying to drag because you can't drop over it@
* Cleaning up my comments in the API section user.js
I had a lot of TODOS that are mostly done now
* Fixing a spacing code standards thing
* Turns out we never use type, so we should remove this from the API call
* Adding pinnedItemsOrder into the user schema
And disabling my call in the frontend before I do any more damage
* Halfway to using pinnedItemsOrder
This isn't working yet but it is not going to break it horribly like it
was before.
* Hooking up inAppRewards to always produce sorted information
It is suspicially working right now even though I have not added the
seasonal stuff logic yet...
* Updating the comments in user.js in movedPinnedItem
It turns out that my bandaid fix to just get the ball rolling perfectly
does what I need it to do when we have a length discrepancy. So we are
getting much closer to the final product, just need lots of testing
* Cleaning up code standards kinds of things
* Yay, this fixes the popover issue
I hope this is the right "vue" way to do things, because I tried a bunch
of other things that definately were not the right way to do it. And
this appears to work too
* ** Partial Work ** Starting tests on api call for draggable items
Doesn't work, doesn't compile so don't include in PR!
* Test failing still...
This is worth a save. The api call grabs the seasonal items too, so we
can't get away from using the common functions and calls here to get the
actual list of items
* Okay have the first test passing
Need to clean up my linter problems though
* Planning out the next two tests and fixing my format problems
* 2nd Test case written, this time with the "more" odd case
* Making sure that we didn't mess with pinned items
* Huh... this test doesn't give me the expected result
Drat, I guess I found a bug
* Throw an error when we put garbage in our api call.
Well, before we got user.pinnedItemsOrder filled with a bunch of "null"
entries which is not ideal. it still worked, but isn't this confusing
enough already?
* Cleaning up the multitude of linting problems thanks gulp :)
* Writing tests for inAppRewards.js, but something is wrong
* Fixing my linting errors in inAppRewards tests
These tests still do not run though, so they may fail and I would not
know
* Applying Negue's fixes to inAppRewards.js test
It never occured to me that we shouldn't try to reach the database while
in the common tests. Well, we shouldn't do that, we should use the
common.helpers instead. Thanks!
* Don't unpin non-gear items
Assumes that multiple of bundles, quests, eggs, potions can be bought
* Added tests
* Changed type checking and made variables global
* Lint fix
* remove removePunctuationFromString function from test code
It's not needed now that the test banned words don't contain underscores.
* prevent tests accidentally throwing messageGroupChatSpam
This commit makes the user for most tests have contributor tiers so
that the user can't trigger the messageGroupChatSpam error message
(for posting messages too quickly).
This is useful when some of the tests fail due to broken code
because that makes more messages be posted than expected. If the user
doesn't have tiers, the messageGroupChatSpam error message would be
triggered, which gives misleading information about the test failure.
* add tests for banned swear and slur words posted in mixed case
* allow banned word error message to show bad words in the same case the user typed them
* stop using randomly-chosen real banned words in tests
The test modified in this commit had been using real banned words,
which meant that those words were being displayed to the contributors
when the test failed.
NB the 'check all banned words are matched' test also uses the real
banned words but the test failure messages don't show the words.
* improve translatability of bannedWordUsed error message
* update antidote display and functionality - fixes#9758 and #10160
update antidote display and functionality - fixes#9758 and #10160
update antidote display and functionality - fixes#9758 and #10160
update antidote display and functionality - fixes#9758 and #10160
* clean up / refactor
* prevent unpin of all items which don't have a pinType
* remove the double boolean casting / fix lint
* update antidote display and functionality - fixes#9758 and #10160
update antidote display and functionality - fixes#9758 and #10160
update antidote display and functionality - fixes#9758 and #10160
update antidote display and functionality - fixes#9758 and #10160
* clean up / refactor
* prevent unpin of all items which don't have a pinType
* remove the double boolean casting / fix lint
* problem location identified (breaks code)
* problem identification notes
* Add class checking to ES (does not yet notify user)
* Add error message
* Add .gitattributes
Attempting to fix line ending disaster
* package stuff
so I can see what's broken
* add reminder and hopefully fix gitattributes
* Fix lint errors
* Redo surge fail notifs
* exterminate rogue comment, fix gitattributes
* Remove unused import
As per @paglias' request.
* fix(lint): remove extraneous expression
* Delete .gitattributes
* Fix skill key surge -> mpheal
* Show notification only when there are mages in party
* Fix notification being too big and appearing outside the notification div
* Remove unused code
* Only show the notification on parties with 2 or more mages
The caster is a mage, so certainly at least 1 mage will be counted.
* Automated test: mpheal does not heal other mages
* Fix lint error
* Fix typo in test description
* Increase performance of test
* Using target instead of requestion partyMembers again
* Rename variable 'party' to 'partyMembers'
* Update strings in English
* spell -> Skill
* Added links to contact form
* Fixed encoding link. Added link to tavern. Updated copy
* Converted link to cookie link
* Updated domain format
* Updated links
* Added apikey to cookie
* fix: fix quest shop to not use string addition when buying quests
fixes#10115
* Fixing quest purchase quantity interpretted as a string on the server side.
* Adjusting pull-request according to comments.
* Updating according to PR comments.
* Show keys to pets immediately
* Ensured keys to pets dissapear after use
* Added resdirect to stable after purchase
* Added mount check and updated keys to mounts and to both
* Added api calls
* Added check for beastmaster progress
* Added mount check for release mounts. Added pets and mount check to release both
* Added actions
* Added catch to common tests
* Added beast count and reload
* Removed extra console log
* `/task/user` `GET` endpoint takes plurals of task types as allowed
parameters, plus another custom `completedTodos` type
* `/tasks/group/:groupId` and `/tasks/challenge/:challengeId`
`GET` endpoints task plurals of task types as allowed parameters
* Updated from origin and added invite error fixes
* Update test for capitalization issue
* New error display
Changed app.vue to display error message using error.response.data.message
* feat(world-boss): barebones API
* fix(world): use Express respond for better JSON
* fix(api): respond with code 200
* feat(content): canonical Dysheartener desc and Rage
* fix(world-boss): enable progress
* WIP(test): world state API
* WIP(test): refactor world boss setup
* WIP(test): better expectations
* fix(test): more expect polishing
* feat(event): server side World Boss
* fix(strings): accidental deletion
* fix(content): include encouragement after Rage
* refactor(world-boss): address comments