smenjas / calendar-vanilla Goto Github PK
View Code? Open in Web Editor NEWA calendar built with vanilla JavaScript
Home Page: https://smenjas.github.io/calendar-vanilla/
License: ISC License
A calendar built with vanilla JavaScript
Home Page: https://smenjas.github.io/calendar-vanilla/
License: ISC License
Right now, events are full days. Allow setting start and end times, with at least a granularity of 15 minutes, and no smaller than 1 minute.
I found this issue using Chrome 109.0.5414.87. See #2.
I tried:
<html lang="en-us">
<meta http-equiv="Content-Language" content="en">
Right now you have to type out the whole name.
Add a way to navigate forward or backward.
Suggestions:
The calendar only shows dates for the current month.
So far, the calendar is a static entity. It only shows dates, but doesn't allow scheduling. Let's change that.
Scope: For the first iteration, allow assigning events to a given day. Assigning start and end times with finer granularity could be something to save for later. It's more important to get events addition, editing, and deletion working than it is to assign start and end times.
We don't need to make it fancy yet. We don't have to allow marking them complete, or inviting other people, or allowing multiple fields for each event. Just a title and a date is sufficient.
Keep in mind we want to show events on each of the views that exist so far:
If you are viewing a day (say January 31st), and you select a month from the select box that has fewer days (say February), you will navigate to a day in the month following the month selected (in our example, March 2nd or 3rd, depending on whether it's a leap year).
Somehow differentiate the current day from the rest.
It would be nice to see the category color before submitting the form.
On screens, we don't need a header, because the nav form shows the current date.
When printing a calendar view, show the date as a header, and hide the nav section.
Right now, the category color input indicates that valid CSS color names are invalid inputs.
The current CSS is redundant and overly specific.
Show the appropriate month and day names for a given locale, starting with "en-us" (US English).
See:
Test it with other locales, for example "de" (German) & "es" (Spanish).
Using vanilla JavaScript (no 3rd party libraries or frameworks), build a calendar showing the current month.
Keep it simple for now: nothing fancy.
Add a way to navigate forward or backward, by a whole year. For example, from January 2023 to January 2022 or January 2024.
Suggestions:
Do we want to allow a category to be deleted if it has events?
I found this issue using Chrome 109.0.5414.87. See #2.
This feature depends on #12.
I'd like to be able to categorize events, and assign colors to categories.
It would be nice to have some categories defined by default. For example:
There are issues with editing categories if they have events assigned to them already:
Other considerations:
This feature depends on #12.
Because categories are stored in an array, categoryIDs are not stable. When we delete a category, all greater categoryIDs decrement automatically. Right now, when we delete a category, each event's categoryID stays the same, so for some events the category changes and for any event with the greatest categoryID, the category is invalid.
This feature depends on #14.
For each category, allow goals to be set.
Allow setting a goal of x events per category, per unit time. For example, exercise twice a week. You should be able to set the goal for any number of times (from one to several dozen at least), or any period of time (per day, per week, per month, or per year). For now, we don't need to allow arbitrary start and end times (for example, Friday through Thursday, instead of Sunday through Saturday), but we can consider that for the future.
We want to allow more complicated goals. For example with chores, we may want to empty the litter box twice a week, take the trash out once a week, do dishes every other day, do laundry every 3 days, and so on. We can handle this by requiring all tasks in a given category get done each day/week/month/year, and just create tasks as needed.
For example, when I'm adding an event for February 2023, and I select March 2023, the number of days is limited to 28, although it should show 31 days.
Show a whole year of monthly calendars at one time. Each month should be much smaller than the monthly view, so you can see the whole year on one screen.
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.