Coder Social home page Coder Social logo

calendar's Introduction

Calendar Icon Calendar for Haiku.


Calendar is a native Haiku application to manage your appointments.
You can create, edit and delete events, and cancel or hide them, categorize events and show them in a day, week or month view.

screenshot

Requirements

To build Calendar you need the sqlite3 development library:

For 32 bit version of Haiku -- $ pkgman install sqlite_x86_devel

For 64 bit version of Haiku -- $ pkgman install sqlite_devel

Note

When building on 32bit Haiku, you need to change the build environment to use gcc11 with setarch x86 before invoking make.

For more information, please see the Calendar documentation.

calendar's People

Contributors

akshayagarwal007 avatar bachtothefuture avatar barmenduc avatar harshit-sharma-gits avatar jadedctrl avatar janus2 avatar korli avatar malbx avatar modeenf avatar scottmc avatar waddlesplash avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

calendar's Issues

Improve CategoryEdit UI

Possibly move ColorControl and ColorPreview into a separate panel and simply show a color well representing the category color in the CategoryEdit Window.

Layout improvments

How about this layout to avoid too much grey space to the right of the event list:

Image of Yaktocat

The "today's date' is a mouse-over button that gets you to 'today'.
Not sure the Agenda view is needed, instead Month and Year might be added.

Sentence casing

All GUI strings should use sentence casing, i.e.e.g. ""End time", "Event manager", "Day view". Fits better into the rest of Haiku.

Allow recurrent events to be set

Events that repeat itself monthly, yearly and like that.
Say if monthly is selected as the recurrence option, create multiple independent events with same details and add it to every month, not allow modifying of the event as an individual event once set.

Possible recurrence options:
every day
every weekday
every weekend
every (checkboxed set of days)
every 1st/2nd/3rd/4th/5th (weekday) of every month
every MM/DD

Implement an agenda view

This shows the next events being lined up.

Something in this line...

Now
Event 0: Time elapsed or time remaining.

Next
Event 1: in 20 minutes
Event 2: in 5 hours
Event 3: in 2 days
Event 5: next Sunday

Note: For relative date/time formatting a relative date/time formatter(part of locale kit) would have to be implemented. The same would also be useful in event notifications.

Using icons for event status and managing in general

I'm not sure introducing a separate filetype for cancelled events is a good idea. In fact, people using queries will prefer to search one filetype, esp. if they look for regular and cancelled events at once. I'd say keep the one filetype + indexed status and set the icon according to status explicitely for that file in the app.

All this icon business only makes sense, if people are supposed to manage their events like email: with queries and changing attributes like start/end time in Tracker. If so, Calender would need a Tracker add-on, so people can change statuses in Tracker like they do with email ("Mark as...").

If OTOH the Calender app should stay the hub of event management, using different file icons in Tracker isn't needed and would complicate things, I suppose.

The Tracker manageable events route does have its charmes, looks like quite a bit of more work though...

Calendar crashes on Sync

Active Threads:
thread 7583: Calendar (main)
thread 7588: Notification Thread
thread 7589: w>Calendar
thread 7596: w>Google Calendar Sync
thread 7602: team 7583 debug task
thread 7597: Synchronization Thread
state: Exception (Segment violation)

	Frame		IP			Function Name
	-----------------------------------------------
	0x7fb8418eead0	0x74137e47d0	BString::~BString() + 0xc 
		Disassembly:
			BString::~BString():
			0x00000074137e47c4:               55  push %rbp
			0x00000074137e47c5:           4889e5  mov %rsp, %rbp
			0x00000074137e47c8:           488b07  mov (%rdi), %rax
			0x00000074137e47cb:           4885c0  test %rax, %rax
			0x00000074137e47ce:             7415  jz 0x137e47e5
			0x00000074137e47d0:         8378f800  cmp $0x0, -0x8(%rax) <--

		Frame memory:
			[0x7fb8418eeac0]  `..A.......{....   60 ef 8e 41 b8 7f 00 00 b8 13 8e 7b 03 00 00 00
	0x7fb8418eef70	0x37b8e13b3	EventSync::ParseEvent(BMessage*) + 0x7e1 (src/plugin/GoogleCalendar/EventSync.cpp:-1)

Calendar-7583-debug-30-08-2017-05-46-50.txt

Remove Today button

The "Today" button that jumps to the current date in the toolbar is confusing. It doesn't fit with the other buttons (Day, Week, Agenda) that toggle the event list content.

I propose to remove it and instead transform the view that shows todays date (above the calendar view) into a button. It's pretty intuitive that a click on today's date will take you to today.

Switching back to "Today" from "Week view" does not update list

Switching back to Day View from Week View does not work. The list does not get updated to only contain today's events.

I created 3 events. 2 for today and 1 for tomorrow.
When I am on "Today" I see 2 events for today.
Then I switch to "Week view" and I see 3 events for the week, 2 for today and 1 for tomorrow.
Then I switch back to "Today" and I still see 3 events, 2 for today and 1 for tomorrow.

Switching from "Week view" to "Day view" and then to "Today" works fine.

Event Manager: arrange horizontally

Currently the window is very tall, because everything's arranged vertically.
As most people have wide screen monitors, putting the Start/End time and Recurrance to the right of the Name/Place would be better.

Always respect Day/Week button toggle setting

The state of the Day and Week button toggles should always determine what appears in the events list. Currently, if select a day in the date view while the Week button is active, the event list shows only the event of that selected day. It should show all the events of the selected day's week.

Can someone explain what the Agenda view is? I just seems to jump to 'today'...

Work on Haiku Locale kit.

  1. Implement BDateFormat::GetWeekDays() : To get locale based weekday names in various format style (short/long/medium/abbreviated). For e.g Mon, Monday, Mo, M.
    https://dev.haiku-os.org/ticket/13606
    https://www.freelists.org/post/haiku-gsoc/Query-regarding-BDateFormat
  2. The above function can be used to fix a bug with BCalendarView where the weekday names in the header doesn't get updated with locale preferences change.
  3. Extend BDateFormat::GetMonthName() to get month names in various format styles.
  4. Improve the current implementation of BDateFormat/BTimeFormat/BDateTimeFormat (avoid creating the date formatter on the ICU side multiple times keeping thread safety in mind).
  5. Implement a relative DateTime formatter.
    http://icu-project.org/apiref/icu4c-latest/classicu_1_1RelativeDateTimeFormatter.html

Integrating flutter into the calendar

why don't we use flutter to design the calendar application, a thing about flutter is that it is cross-platform with out need to edit codes across several device platforms and flutter engine for desktop apps was launch just want to suggest if this could be used for the calendar it make the code portable and a good thing about flutter is that it uses a c++ rendering engine.
If it is approved i would like to try this project out with flutter, though i don't have haiku, but i guess it should be able to work.

Real time updates

This may be a stretch, but in Haiku when changes are made it is preferable that changes are updated in real time. So for example if I change the category the event color is instantly changed in the Calendar window. This does rquire some changes though

1- Remove the "Save" button since it won't be needed if changes are saved automatically
2- Replae the "Cancel" but with "Revert" to revert the changes made since editing this event started.

See the Mouse preferences as an example.

Event name truncation

If you create a long event name, and then shrink the window it will be truncated properly. But then if you expand the window again the string remains truncated.

Improvement EventWindow

  • The Delete button should be disable when a new event is added (When pressed it crashes the app)
  • The menuField of the categories should show their color

Event Manager window location

I just noticed that on my laptop (screen resolution 1200 X 800) when I click "Add Event" the lower half of the Event Manager window is below the bottom of the screen. There should be a check to make sure the window is on screen, if not maybe call CenterOnScreen()?

Also would be nice if the user moves the window that the position is saved so it always is in the same location. If I move it a new event always opens in the current default location.

Suggested re-arranging of the GUI elements

This is just a suggestion...

Can't upload in Haiku... -> See here

I'd put the big date at the top of the event list. When changed to month-view, it only shows month and year. BTW, that big date always shows today's date, not the one selected in the calendar widget.

To the right of "Add Event" there's space for "Edit event" and "Remove event".
Maybe "Add", "Edit", "Remove" is discriptive enough.

Event Manager: Button labels

I think having "Delete" (left-aligned), "Cancel" (right-aligned) and "OK" (right-aligned) would be more standard. Putting the "Delete" to the left avoids accidental clicks...

Add all functions to the menu bar

If your app has a menu bar, it should contain all the functions available in the GUI. At least until things become to crowded up there...

I propose to:

  • move the "Preferences" under "App".
  • remove "Edit"
  • Add a menu "Event" with the items "Add event", "Edit event", "Remove event"
  • Add a menu "Category" with the item "Edit categories"
  • Add a menu "View" with the items "Day view", "Month view" and after a separator "Go to today"

Add timed computer task

Add timed computer tasks (much like cron's operations). For example, instead of just texting you a reminder to start the weekly backup of your file server, it could kick off an ssh session that starts (and logs) the backup

Currently it only gives a notification before an event starts using BNotification.

Improve event notifications in general.

Presently it simply uses BNotification and delivers an information notification to the user about the event's occurrence. But that may not be enough. The user may want to snooze the reminder for a certain period and want the reminder again after that period. This is standard is almost all calendar apps and in my view a necessary feature.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.