pierreandreis / g4m3r-dashboard Goto Github PK
View Code? Open in Web Editor NEWHome Page: https://g4m3r.xyz
Home Page: https://g4m3r.xyz
This bug is a critical one since many users will use the dashboard on mobile
for width<1000 the sidebar should disappear
On the sidebar, there should be an option to navigate between different guilds
MobX is currently only being used for authentication, everything else is being hold either on Apollo cache or local react components.
Is it necessary? I recommend moving authentication to apollo state management and getting rid of it. This will also allow us to update to react-scripts@2
When a user takes an action on the website some of those actions can take some time to finish doing on the server. We need a way to create a small notification alert that users can see their action is finished on the server. Although the notification should be easily viewable it should not be distracting the users experience.
One of the things that people love about g4m3r is how we automate some actions for them. For example, to create a Mute module is very complicated process.
That takes a lot of effort for a user to do so we need a way for a user to click a button that creates a new role on the server and sets it. I can do all this with an eval script but we need to find a way to add a button on it.
Role selector: Select a role from a guild. Must also be able to be used to allow selecting multiple roles for a setting.
Channel Selector: Select a channel from a guild.
Permission Selection: Dropdown to select a permission from clientStorage.
Color Picker: Allow users to pick a color.
Input Validator: Check if an integer.
Input Validator: Check if a string and also option to check if using embed format.
Our current favicon is the react default favicon. We should change for g4m3r logo, and also include open graph headers
HelpModal's content should be reworked to avoid copy&pasting the same jsx code 100s time.
Strings will then be organized in 1 file per help category (e.g. General) to be imported into the General page.
lets the user choose his color visually (e.g. for embed creator component or for moderation colors)
Change text on snackbar to be more user friendly. Currently we have example texts which isn't helpful at all
images to make the UI to look less clinical
Currently there is no way to know which inputs have changes staged on them. We should highlight in a way that it is easy to identify which input was changed by the user, and when saving they will be sent to the backend.
at the moment one needs to logoff and login again to refresh the serverlist after adding a new server
There is a bug that makes the Chrome browser infinitely stuck on loading with no chance to login.
EDIT: Also happening on Safari now once cache was cleared.
Expected behavior
It should login and show servers when discord authorizes it
I tested the current Sidebar on its behaviour on several devices and I come to the conclusion that some parts do not make sense only related to window size (xxxx pixels).
When a mobile is turned to horizontal mode I would as example still hide the sidebar since it just doesnt work on mobile to have it there permanently (check the following screenshots for the reason)
I found this package that could help us in terms of device detection.
https://www.npmjs.com/package/react-device-detect
It would be good to know what is happening inside the dashboard
a component that lets the user pick a number and a format (e.g. 2 and days, or 10 and minutes) as input for the input fields related to time values
Sentry should provide us with error tracking features
modals can show further information to explain consequences / preliminary stuff:
On serverlist component, refresh button should show some feedback that it was pressed, and it is current refreshing the content.
Otherwise users will just click tons of times without knowing it is refreshing
Make similar changes as we have on the bot repo.
There is already a commands page, currently commented out in the router.js, where all the permission regarding the commands can be set. To be able to have the commands page working properly we need the following:
Data Logic
Get all current command settings from bot (already fetched anyway) and merge those with the default command settings (to be able to show all commands - also already done on the api)
Reflect changes in the command permissions (enable / disable, deletion trigger on / off, exceptions for channels / roles)
Remove commands from array that are the default, and save final commands array to the database (current settings will be overwritten as the whole array will be overwritten)
Component dependencies
const validation = {
number: () => result,
string: () => result,
};
also only return null
on NO error and string
on error
change input to not run logic but to receive validate prop
<Editor.Input validate={Validation.numbers(0, 10)} />
(only show if user is vip OR show information about becoming vip as advertisement)
Just had a server activate the verification system on the website but it didnt run the verification script on the bot so the system was not enabled leading to a bunch of confusion.
One very important thing we are going to need on the dashboard is a way to run a script on the bot. I have created an IPCPiece called broadcastEval
that will run a script on all shards. The script will run on all shards and will just return null if the guildId
does not match.
IPCPiece will take two arguments, the guildId
and type
. The type will be a string indicating the name of the script to run on the bot.
this.client.ipcPieces.get('broadcastEval').run({ data: { payload: { guildId: 'xxx', type: 'createServerLogs' } } })
Ideally, the server logs will have 2 buttons that will do the following:
#role-logs, #member-logs, #mod-logs, etc...
and basic will just have one #server-logs
.There are a lot of settings that when toggled must run scripts on the server. For example, setting/creating mute role system, verification system etc... This is a very important feature and I would say this should be a top priority issue.
Note: If possible it would be very useful to also pass in the user id of the user that ran this script for purposes of logging. We can log which user conducted these actions.
Currently we have a ton of boolean values that just get toggled for settings. Having each one in a separate box is a bit overwhelming and the box is so empty. Setting the {width=100} makes it look squished so feels wrong.
Merging all the toggles on a page into one box will make it look really nice in my opinion but we need to change the buttons to be aligned to the left and the text on the right so we never have to worry about text length breaking the button
There should be a way for a bot dev or a bot mod to be able to override the Admin authorization and access any servers settings. For example, when our mods are providing setup support to other VIP servers they don't need to tell them to go to x setting and do this on x page instead they can backdoor in and change the setting as needed.
One of the things I would really like to see is a Trusted By section where we can promote like our best servers that trust us.
Example:
Trusted By:
Vainglory 92K+ member
Arena of Valor 34K+ members
And if they are part of the premium enterprise package we can include their discord invite links so if someone clicks on their logo they automatically join that server using OAuth.
A simple component is needed that allows a user to see all the saved "keywords" and also an easy way to add or remove words. For example, i can use this for blacklisted words on a server or i can use this to have users type in all the IGN's of their guild members and easily add or remove them.
EDIT: This would be nice to also be done with Select as well. For example, for our link filter a user can add multiple roles, or channels or users to be whitelisted. In that case they could just select to add stuff and press the x to remove.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.