Giter VIP home page Giter VIP logo

borg_calendar's Issues

When using the Appointment Editor, user is not prompted to save unsaved changes

Description:

BORG Calendar's Appointment Editor does not prompt the user to save unsaved changes made to Appointments.

For example, if the Subject (or any other field) is changed in the Appointment Editor, and then the user forgets to click the Save button, and clicks another Appointment in the Appointment List (right side of screen), the changes made to the previous Appointment will not have been saved.

Another example is when a new Appointment is created and the Appointment Editor tab is closed prior to saving the Appointment, the user is not prompted to save the new Appointment.

Steps to reproduce:

1. Start BORG Calendar 1.8.1
2. Go to the Month View and Right-click an existing Appointment and select Edit from the context menu.
3. Within the newly opened Appointment Editor, make changes to the Appointment. For instance, change the Subject of the Appointment.
4. From the Appointment List section on the right side, select another Appointment (the other Appointment can exist on a different date). Note that you are not prompted to save the unsaved changes.
5. Re-open the Appointment from Step 2; the changes made in Step 3 will not have been saved.

Suggested Fix:

When the Appointment editor is changed to a different Appointment or is closed, the user should be prompted about whether they would like to save the changes they have made to the Appointment.

Environment:

Primary test environment:
BORG - Berger-Organizer 1.8.1
Build Time: 2015-01-17 14:51:28
Java 1.7.0_65
Ubuntu 14.04 LTS x86-64
Macbook Pro 13" (Intel Core i5-2415M)

Secondary test environment:
BORG - Berger-Organizer 1.8.1
Build Time: 2015-01-17 14:51:28
Java 1.7.0_65
Windows 8 x86-64
Lenovo Yoga 2 Pro (Intel Core i7-4510U)

Other info:

Severity: Low

[ICS Import] Using a category name > 15 chars results in SQL errors, and noting an unsuccessful import as a successful one

When editing an ICS file generated by BORGCalendar, you should avoid modifying the categories list such that a particular item is longer than 15 characters. Importing such a file will cause an SQL error to throw on that entry, which is expected. However, the import operation will finish by saying that the event has been imported, even though the event does not exist in the calendar (because of the error during import).

This issue can arise in situations where a user modifies an entry or batch of entries in an ICS file to change the category name before importing back into an installation of BORGCalendar (for example, sharing an itinerary with someone, on which the recipient performs a 'find and replace all' to try and use a category name they are used to seeing in some other calendar application).

Environment And Setup:

Hardware: MacBook 2014 15" Retina
OS: OS X 10.10, Windows 8.1 (6.3.9600)
BORGCalendar Version: 1.8.1 (on both OS X and Win8.1)

Consider the following ICS file contents:
——
BEGIN:VCALENDAR
PRODID:BORG Calendar
VERSION:2.0
BEGIN:VEVENT
DTSTAMP:20150121T213347Z
UID:1@BORGA-1421869872942
CREATED:20150121T213315Z
LAST-MODIFIED:20150121T213342Z
SUMMARY:Category name is too long.
DESCRIPTION:Category name is too long.
DTSTART;VALUE=DATE-TIME:20150130T155500Z
DTEND;VALUE=DATE-TIME:20150130T193500Z
CATEGORIES:IsThisTheRealLifeIsThisJustFantasyCaughtInALandslideNoEscapeFromReality
END:VEVENT
END:VCALENDAR
——

Reproduction:

  1. Begin with any calendar (entries currently in the calendar does not appear to affect it)
  2. Import the *.ICS File above via "Ical > Import"
  3. You will be presented with a SQL error similar to the following:

org.h2.jdbc.JdbcSQLException: Value too long for column "CATEGORY VARCHAR(15) DEFAULT NULL": "'IsThisTheRealLifeIsThisJustFantasyCaughtInALandslideNoEscapeFromReality' (71)"; SQL statement:
INSERT INTO appointments (appt_date, appt_num, duration, text, skip_list, next_todo, vacation, holiday, private, times, frequency, todo, color, rpt, category, reminders, untimed, encrypted, repeat_until, priority, create_time, lastmod, uid ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) [22001-173]

4. Hit "OK“.
5. You will be informed that the entry imported successfully, but the entry will not be visible (The entry corresponds to 30 Jan 2015 in this example):
Imported: 1
Skipped: 0
Duplicates: 0

Possible Solutions:

  • Mark this entry as skipped in the results window, or under some kind of error summary
  • Perhaps gracefully fall back on a default category and import the event anyway. When parsing an ICS file, if the category is found to be too long, inform the user that the category for event X will be changed due to the underlying limitation. This allows the application to still import the event as completely as possible, which is (in my opinion) better than nothing.
  • inform the users about the specific entries that had issues and did not import successfully. Perhaps offering them a list of names or ids so that they can refer to the imported file and manually move these entries over under a category they like that fits the database requirements.

Borg windows open off-screen

Borg windows can open off-screen if the display setup changes when Borg is not running, i.e. removing a monitor or shrinking the resolution. Borg should check if a window is off screen when opening it and make sure it opens on screen.

Documentation/Code Mismatch: "Red" bar at the top of the cell of a month or day does not appear.

Problem description:

The Software Requirements Specification for the BORG calendar mentions that:

SRS for BORG Calendar: 3.1.2 Stimulus/Response Sequences 6.- "Alternatively, when in year view, place the mouse over a day’s number (a red bar will appear)and click. The day view of the specific day will appear.

SRS for BORG Calendar: 3.1.2 Stimulus/Response Sequences 7.- " Alternatively, when in year view, place the mouse over a month’s name (a red bar will appear). and click. The month view of the specific month will appear.

Environment and Setup:

Hardware(s): ASUS Laptop, Dell Laptop
OS: Windows 8.1
Java version: 1.8.0_31
System type: 64-bit Operating System, x64-based processor
BORG Calendar Version: 1.8.1

How to reproduce the issue:
  1. Launch the BORG Calendar application.
  2. You will notice that the month view is already open by default.
  3. Click on "Actions" and click on the "Year View".
  4. Now both the month and year views are docked.
  5. Mouse over the top of any cell in both the year and month views and you will notice it has a "Black" bar rather than a "Red" bar.
  6. This is inconsistent with the Software Requirements Specification for BORG Calendar.

Added birthdays of contacts do not reflect properly on current month view nor on the address book.

Problem description:

Right after adding a new contact with a birthday to the address book, it makes no changes to the month view until an action (like scrolling to the next month and scrolling back to the original month) is done to the page of the month. Occasionally, the added contact does not also reflect on the address book i.e, it doesn't show on the address book even after clicking "Save".

Environment and Setup:

Hardware(s): ASUS Laptop, Dell Laptop
OS: Windows 8.1
Java version: 1.8.0_31
System type: 64-bit Operating System, x64-based processor
BORG Calendar Version: 1.8.1

How to reproduce the issue:
  1. Launch BORG Calendar
  2. Select Address book
  3. Click "add new"
  4. Enter "First name" and "Last name"
  5. Go to "Birthday" and select a date from the calendar in the month currently displayed in the month view.
  6. Click "Save"
  7. At this point, sometimes the added contact appears in the address book. Other times, it doesn't appear until you restart the application.
  8. Note that point number 6 mostly happens especially after opening and using the calendar for a while (say and hour).
  9. You will notice that the added birthday doesn't reflect in the month view.
  10. Now scroll the the next month in the month view.
  11. Scroll back to the original month.
  12. The added birthday finally appears.
sample files:

Adding a new contact "Rudolf Menary" with his birthday to the address book which already had one contact (Don Chan) by the time the application was launched. ("Don Chan" was added in an earlier run of the calendar application.)
capture2

Before cycling pages: After saving the contact, the new contact/birthday does not yet appeared on the month view. Only "Don Chan" appears.
before cycling pages after adding

After scrolling to the next month and back, the new contact/birthday appears.
after cycling pages after adding birthday

Opening the address book, I noticed that though the contact appeared on the month view, it was still missing in the address book. Though when the application is relaunched, the contact then appears in the address book too.
added birthday not shown in address book

Unable to update address book after closing all the tabs

Description :

BORG Calendar's address book does not add a new contact when the address book tab is opened immediately after closing the address book tab.
For example, if a new contact is added in newly opened address book tab, it will successfully add a new contact. But, if the address book is closed and then is re-opened, then the view does not show the newly added contact.
Note that, upon quitting the current running BORG Calendar and then reopening a new session, the address book tab shows the added contact.

Steps to reproduce :

  1. Start BORG Calendar 1.8.1
  2. Open the "Address Book" tab.
  3. Click on "Add new" button and create a new dummy contact. Note that the contact is successfully added to the address book.
  4. Close all the "Address Book" tab.
  5. Reopen the "Address Book" tab.
  6. Click on "Add new" button and create another dummy contact. Note that the contact is not being added to the address book.

Suggested Fix :

Show the updates made to the address book immediately regardless of address book being opened as a fresh tab or as a reopened address book tab.

Environment :

BORG - Berger-Organizer 1.8.1
Build Time: 2015-01-17 14:51:28
Java 1.8.0_31
Windows 7 x86-64
Dell Optiplex 745 (Intel Core 2 Duo E6300)

Secondary test environment:
BORG - Berger-Organizer 1.8.1
Build Time: 2015-01-17 14:51:28
Java 1.7.0_65
Ubuntu 14.04 LTS x86-64
Macbook Pro 13" (Intel Core i5-2415M)

Metadata:

Severity: Low
Reproducible: Yes (always)
Affected platforms: All

Uninstaller does not delete BORG files from file system (Windows specific).

Descprition:

The uninstaller provided with BORG Calendar does not delete the BORG executable files from the file system. Moreover, BORG does not appear among programs to uninstall in the control panel. This is a Windows-specific issue as far as tested.

Steps to Reproduce:

Uninstaller:
1. Go to the folder where BORG files are stored (e.g. C:\Program Files\BORGCalendar)
2. Go to Uninstaller directory
3. Run uninstaller.jar

For Control Panel:
1. Open Control Panel in Windows
2. Open "Programs and Features" - BORG will not be listed among programs and features that can be uninstalled.

Environment:

BORG - Berger-Organizer 1.8.1
Java 1.7.0_65
Windows 8.1 x86-64
Asus ROG G75VW (Intel Core i7-3630QM)

Other:

Can reproduce: Yes
Severity: Low

Appointments on 29th of February of Leap years repeat instead on the 28th in non-leap years.

Problem description:

When an appointment is added on the 29th of February in a leap year, then if it is set to repeat yearly, it ends up incorrectly repeating it on 28th of February in non-leap years. In contrast, the birthdays on the 29th of February in leap years correctly skip non-leap years and repeat on the 29th of February after the next 4 years.

Environment and Setup:

Hardware(s): ASUS Laptop, Dell Laptop
OS: Windows 8.1
Java version: 1.8.0_31
System type: 64-bit Operating System, x64-based processor
BORG Calendar Version: 1.8.1

How to reproduce the issue:
  1. Launch BORG Calendar.
  2. Right-click on the 29th of a leap year (e.g. 2012)
  3. Choose the "Add New" option. You'll see an "Appointment Editor" open up.
  4. Under "Frequency", choose "yearly" and click on "Repeat Forever".
  5. Make sure the "Show Repeat Number" is ticked.
  6. Now click "Save and Close"
  7. The appointment appears on the leap year's 29th of February as it is supposed to.
  8. However, when you check the following 3 years, the appointment appears in their 28th of Feb rather than skipping these years in the repetition.
Sample Files:

Date is set to 29th of February and the appointment is set to repeat every year.
to-do made in a leap year for the 29th of february to be repeate yearly

However, the appointment repeats on a 28th of February rather than skipping this non-leap year.
29th repeated date is shifted to 28th on non-leap years

Links section in Appointment Editor does not get reset for new Appointments

Description:

In the Appointment Editor, when a link is added to an existing Appointment, and then the Appointment is saved, a new Appointment Editor page is shown. This new Appointment Editor has the default values for most of the field. For example, the Subject field is blank, the time is set to No Specific Time, etc. However, the Links section is not reset to the default values.

The Links section still shows the links from the previous Appointment. However, when the new Appointment is filled out and saved, and then selected from the Appointment List, it no longer contains the links.

Additionally, when the Links section shows the links from the previous Appointment, if the link is deleted from the empty Appointment, it will also get deleted from the original Appointment.

Steps to reproduce:

  1. Start BORG Calendar 1.8.1
  2. In the Month view, Right-click a date and click Add New in order to create a new Appointment.
  3. In the Appointment Editor, fill the Subject field with "Appointment_1" and click Save.
  4. Now select Appointment_1 from the Appointment List.
  5. Click the Link file button in the Links section to link a file to Appointment_1.
  6. Select any file; the newly linked file should appear in the Links section.
  7. Link another file to Appointment_1.
    image
  8. Click the Save button. Notice that the Appointment Editor's field are reset and it shows **** NEW APPT **** at the top left. However, you will also notice that the Links section is not reset and it shows the file you linked to Appointment_1.
    image
  9. Right-click one of the files you linked and select Delete. That file link should disappear.
    image
  10. Enter "Appointment_2" in the Subject field.
    image
  11. Click Save.
  12. From the Appointment List, select Appointment_1. Notice that the file that you unlinked in Step 9 was actually unlinked from Appointment_1. However, the other file you linked should still be in the Links section.
    image
  13. From the Appointment List, select Appointment_2. Notice that there are no files in the Links section.
    image

Suggested Fix:

When an Appointment is saved using the Save button, the Links section should also be reset like the rest of the fields. This way, the links will no longer appear in the new Appointment and the user will not be able to delete them. Hence preventing the deletion of the linked files to the original Appointment.

Test Environments:

BORG - Berger-Organizer 1.8.1
Build Time: 2015-01-17 14:51:28
Java 1.8.0_31
Windows 7 x86-64
Dell Optiplex 745 (Intel Core 2 Duo E6300)

Secondary test environment:
BORG - Berger-Organizer 1.8.1
Build Time: 2015-01-17 14:51:28
Java 1.7.0_65
Ubuntu 14.04 LTS x86-64
Macbook Pro 13" (Intel Core i5-2415M)

Metadata:

Severity: Low
Reproducible: Yes (always)
Affected platforms: All

Program Files folder cannot be written and javaw error

Please add an installation manual or add some tips during setup.
borg_installer-1.8.0.1.jar installation on Win7 64bit:
This directory C:\Program Files\BORGCalendar can not be written! Please chose another directory"
Right-click Run As Admin did not show up, I had to do the following:
-> Copied installborg .jar to c:
-> Right click "Command prompt" in the start menu (just search for it) and select "Run as administrator", - c: + Enter cd \ + Enter
-> "java -jar installborg.jar" + Enter
Now it works 100% :-)

when I do the borg_installer-1.8.0.1(1).exe
Error: Windows cannot find 'javaw'. make sure you typed the name correctly.... Error opening file
even if I run as Administrator. (Win7 64 bit) java Std edition V7 update71 build 1.7.0_71-b14 jdk

Font sizes may cause overlap between input fields if too large

Descprition:

Font Sizes – possible to choose too large a font which causes letters and numbers to overlap in the views

Steps to Reproduce:

1. Start BORG Calendar 1.8.1
2. Click on Options > Edit Preferences > Fonts
3. Select a view, and scale the font size to 60

Suggested Fix:

Provide dynamic font scaling, or limit the maximum font size such as to prevent letters overlapping.

Environment:

BORG - Berger-Organizer 1.8.1
Java 1.8.0_31-b13
Windows XP Professional Service Pack 3
Dell Optiplex 8020 (Intel Core i7-4770, 512MB RAM)

Other:

Can reproduce: Yes
Severity: Low

Windows have no set minimum size.

Descprition:

BORG Calendar's windows can be re-sized to a minimal size that is small enough to visually lose the window; this is exacerbated if the system runs at higher resolutions.

This affects all windows that appear in the application.

Steps to Reproduce:

1. Start BORG Calendar 1.8.1
2. Select any corner of the main window to re-size.
3. Move cursor inwards towards the window and shrink window size until no longer possible

Suggested Fix:

Set a minimum size for all windows, possibly dependent on the resolution.

Environment:

Primary Environment
BORG - Berger-Organizer 1.8.1
Java 1.7.0_65
Windows 8.1 x86-64
Asus ROG G75VW (Intel Core i7-3630QM)

Secondary Environment
BORG - Berger-Organizer 1.8.1
Java 1.7.0_65
Red Hat Linux x86-64 VM
Asus ROG G75VW (Intel Core i7-3630QM)

Other:

Can reproduce: Yes
Severity: Minimal

Today marker has weird category in To Do List

Version used: 1.8.1

Procedure

  1. Open the To Do List view. Observe the ====== Today ====== entry and the corresponding "Today is" category.
    Expect that the "Today" entry does not appear OR the category is empty OR the category is corrected to its intended meaning.

Uninstaller does not kill the running process of BORG

Description:

If a session of BORG is running and the uninstaller is used, BORG will be uninstalled without prompting to kill the running process.

This can mean that BORG is uninstalled while there is still a running process. This may result in errors while using some functionality. For example, if the Options > Reset Task States to Default action is performed, a java.io.FileNotFoundException is thrown because the model-1.8.1.jar file no longer exists.

Steps to reproduce:

1. Start BORG Calendar 1.8.1
2. Use the BORG uninstaller
3. Check the "Force the deletion of <installation dir>" option. The uninstall will complete without prompting to kill the running BORG process from Step 1

Suggested Fix:

When the uninstaller is used, the user should be notified that any running process of BORG should be killed prior to using the uninstaller.

Environment:

Primary test environment:
BORG - Berger-Organizer 1.8.1
Build Time: 2015-01-17 14:51:28
Java 1.7.0_65
Ubuntu 14.04 LTS x86-64
Macbook Pro 13" (Intel Core i5-2415M)

Secondary test environment:
BORG - Berger-Organizer 1.8.1
Build Time: 2015-01-17 14:51:28
Java 1.7.0_65
Windows 8 x86-64
Lenovo Yoga 2 Pro (Intel Core i7-4510U)

Other info:

Severity: Low

Modifying a secondary event while unsaved changes exist in an Appointment Editor tab causes unsaved changes to be lost

(This item is similar to #284 on SourceForge, however it extends the issue raised as any change to any event outside of the Appointment Editor tab will create the issue mentioned.)

When editing an entry in BORG Calendar via the Appointment Editor tab, a user can get themselves into a situation where unsaved changes in an open tab are silently deleted. Suppose a user creates an event, and wishes to make changes to the body of the event. During this, they decide to reference some other event's name, and so they poke around in one of the day/month/year views and move some objects around, which may or may not include the event they're currently making changes to. When they return, they find the appointment tab has been wiped and they've lost whatever they were doing. Yikes!

System:

OS: Windows 8,1, Mac OS X 10.10
BORG Calendar: 1.8.1

Reproduction:
  1. Create a simple calendar event.
  2. Open the Day View for the day you made the event in step 1 for.
  3. Open the Appointment Editor tab for the event. Make some changes to the subject or body of the event, but do not save them.
  4. Modify any calendar event in some way (e.g. shift the event, or change the start or end times of the event by resizing the event in the Day View)
  5. Notice that clicking the Appointment Editor tab now refers to a new appointment, and all unsaved changes have been lost.
Additional Scenarios:
  • Modifying the start/end dates/times in either the Day or Month views (by dragging the event to a new day, shifting the event to further/earlier in the day, dragging one of the event endpoints, etc) replicates this issue
  • Opening the event in two Appointment Editor tabs and saving changes in one causes the second tab to exhibit similar functionality (the second tab, rather than conveying the update, becomes a tab through which an entirely new appointment can be filled in)
  • Modifying an entirely unrelated event causes the tab to be silently removed as well (including editing and saving an unrelated event!)
Concerns:
  • As the only changed information in this case is the start/end times, it is unclear why moving the date around causes the application to lose sight of it completely
Possible Solutions:
  • Track opened events by some method that is a bit more robust to these types of changes
  • Notify users of possibly conflicting data and ask them to pick the correct information (reconcile the two tabs)
  • simply force update the dates/times in the Appointment Editor tab to reflect the time changes made in the Day View tab

Run SQL does not execute multiple SQL statements even though statements are semicolon (;) separated. Only the first statement is ever executed.

Sample statements
sample queries

Sample results
resultset

Run SQL interprets both statements as shown by the table syntax error (the table “APPOINTMENTS” is spelled as “APPOINMENTS”). It doesn't make sense why if I were to correct the syntax error and run the two statements only the first result set is shown (select * from memos).

incorrectsyntax

Settings:
Linux, Intel i7-CPU, 8GB RAM, x86_64 architecture
borg 1.8.1

Blank Until field for appointment gives NullPointerException dialog

Version Used: 1.8.1

Procedure

  1. Create a new appointment.
  2. Set the recurrence to daily.
  3. Select the radio button to "Until".
  4. Click "Save and Close". Observe a dialog message which says "NullPointerException". Expect a better error message or different way of providing the information other than a dialog.

No information such as appointment(s) are displayed on a printed calendar when using GNU/Linux OS

Problem description:

When attempting to print or export to a file of a calendar using a Linux operating system, the output shows a grid of squares with corresponding numbers of the days in a month. However, no information such as added appointments are printed and nothing but the numbers themselves are seen. The first square may also starts with a random number rather than number 1 which refers to the first day of the month.

Environment and Setup:

Hardware: Clevo Laptop, Desktop
JDK version: OpenJDK Java 7 development kit
Java version: 1.7.0_75
CUPS version: 2.0.1-1
OS: Ubuntu 14.10 and ArchLinux , Win 7
BORGCalendar Version: 1.8.1

How to reproduce the issue:
  1. Create an appointment(s) for any date of the currently selected month.
  2. Save the appointment, give it any name, ensure that it is not set to private.
  3. Action -> Print.
  4. Select one month to print, or more.
  5. You can repeat step 1-4 but choose to tick Print To File instead of printing, and store the file.
  6. The printed or the stored copy will contain only numbers, and will not show the added appointment(s) in step 1.
sample files:

From BORG calender view : http://imgur.com/Q4i6rI7
Output on Linux : http://imgur.com/ZfEeIeC
Output on Win7: http://imgur.com/AKENPTS

Suggestion for Fix:
  1. It should follow the printing output behavior similar of that Windows OS.
  2. If unable to fix, disable the print function or warn the user of such behavior for the calendar when attempt to print on a Linux operating system.

Renaming an exisiting task type does not update its type name for the task(s) who are currently using it.

Problem description:

Renaming an exisitng task type update the type name of that task type in the tasks that currently are using it. The original type name of the task will appear in the tasks who are using it rather the new updated name.

Environment and Setup:

Hardware: Clevo Laptop , Desktop
JDK version: OpenJDK Java 7 development kit, Oracke JDK
System type: 64-bit
OS: ArchLinux , WIN 7
BORGCalendar Version: 1.8.1

How to reproduce the issue:
  1. Create a new project and save it.

     For example, project 1
    
  2. Create a new task for the project example above and select any tak type.

    create task 1 under project 1 and select CODE for type.
    
  3. Save the task and close the Tasks tab.

  4. Go to Options-> Edit Task Types and States.

  5. Select task type that was chosed in step 2.

    Select CODE.
    
  6. Rename the selected task type to any desired name by Rightclick-> Rename.

    Rename CODE to CODE2
    
  7. Click on Save button.

  8. Open the Tasks tab and go back to the task that was created in step 2. You should see the task type still holds for the original name.

Suggestion for Fix:
  1. When renaming an exisitng task type, all the tasks that are using this task type should update to the new task type name.

default LAF used on macs forces CTRL-based shortcuts over CMD-based ones

Concern:
Upon install on OSX, the application uses the _com.jgoodies.looks.plastic.Plastic3DLookAndFeel_ look and feel. This LAF is fine, but it doesn't support command (⌘) as the default modifier on mac environments -- users are forced to use CTRL, similar to windows environments.

Because the majority of applications running on Mac OS X tend to use the command key as their modifier (⌘+C to cut, ⌘+V to paste, etc), users might convince themselves that something is wrong, when in reality the third-party UI is just restricting them.

While this is not strictly an issue with BORG, it might still be possible to ease users into some of the java-based oddities such as this.

Proposals:

  • On install, check if the host operating system is some variant of OS X. If it is, set the default LAF to com.apple.laf.AquaLookAndFeel, or some other LAF bundled with the application that is able to use cmd-style keyboard shortcuts in the application.
  • Alert them on first use to use CTRL, or when changing away from the Apple-supplied LAF in order to avoid confusion.

Month view does not show ToDo entries

I have two computers with (seemingly) identical copies of borg and DB.
On one the Month View shows all the ToDo entries, current and completed (with strikeview).
On the other Month View shows no ToDo entries at all.

How do I get the ToDo entries to show on computer 2?

'System Beep' option for the Popup Reminder does not trigger a system beep.

Problem description:

The documented system feature for 'Popup Reminders' specifies that the user can edit preferences for the popup reminder sounds. This applies correctly for the 'Default' option and a sound is hear. However, if the user chooses the 'System Beep' option, the reminder doesn't trigger a system beep. Instead, no sound is heard.

Reference from SRS for BORG Calendar: 3.4.2 Stimulus/Response Sequences
8. To select the alternative implementation (i.e. the separate popup window for each
reminder), to change the sound that is played when a reminder pops up, or to
change the available popup times, select “Options” “Edit Preferences” and click
on the “Popup Reminders” tab.

Environment and Setup:

Hardware(s): ASUS Laptop, Dell Laptop
OS: Windows 8.1
Java version: 1.8.0_31
System type: 64-bit Operating System, x64-based processor
BORG Calendar Version: 1.8.1

Can reproduce:
Sometimes (most times).
How to reproduce the issue:
  1. Launch the BORG Calendar application.
  2. Click 'Options' on the menu bar.
  3. Select 'Edit Preferences'.
  4. Select 'Popup Reminders'.
  5. Make sure the 'Enable Popup Reminders' Box is checked.
  6. Select 'System Beep' as a reminder sound.
  7. Click 'Apply' and then 'Dismiss'
  8. Create an event (a Todo event is appropriate) and make sure that the 'Popup Reminder' is set for it
  9. Wait for the popup reminder of the event you created to come up.
  10. Listen for a sound and you should notice that system beep does not sound.

Whitespace-only memo does not create a memo - or return an error.

Descprition:

Creating a new memo with whitespace characters only does not create a memo, but gives no error message

Steps to Reproduce:

1. Start BORG Calendar 1.8.1
2. Click on memos
3. Click new memo, and type only spaces.

Suggested Fix:

Present an error message saying “INVALID MEMO”

Environment:

BORG - Berger-Organizer 1.8.1
Java 1.8.0_31-b13
Windows XP Professional Service Pack 3
Dell Optiplex 8020 (Intel Core i7-4770, 512MB RAM)

Other:

Can reproduce: Yes
Severity: Minimal

Blank Setup Shortcuts page during installation on Windows

Description:

During the installation process on Windows, after the installation files are copied to the desired location on the Installation page, the page that follows is the Setup Shortcuts page. Once on that page, the user is given the options to create the desired shortcuts. Additionally, the user has the option to go to the previous page by pressing the Previous button. If this is done, the Installation step is automatically repeated again. If the Next button is then pressed, the user is taken back to the Setup Shortcuts page; however, unlike before, the page is now blank.

Note that this is not an issue on Linux. On Linux (Ubuntu), when the user returns to the Setup Shortcuts page, it is not blank; it has the same options available as when it was visited the first time.

Procedure to Reproduce Bug:

Note: When "(Step x of 7)" is mentioned below, it does not refer to the actual numbered steps, instead it is referring to the labels on each page in the BORG installer.

  1. Start the BORG Calendar 1.8.1 installer (jar file or exe file) on a Windows 7 environment and proceed through the installer until the Installation (Step 5 of 7) page, then click Next
  2. The next page shown will be the Setup Shortcuts (Step 6 of 7) page; notice that the page is populated with the necessary information/options
    image
  3. On the Setup Shortcuts (Step 6 of 7) page, click the Previous button
  4. The Installation (Step 5 of 7) page will be shown again
  5. On the Installation (Step 5 of 7) page, press the Next button to go to the Setup Shortcuts (Step 6 of 7) page
  6. Notice that the Setup Shortcuts (Step 6 of 7) page is now blank
    image

Suggested Fix:

On Windows, the Setup Shortcuts (Step 6 of 7) page should not be blank if the user decides to go to the previous page and visit the Setup Shortcuts (Step 6 of 7) page again.

Test Environments:

Primary test environment:
BORG - Berger-Organizer 1.8.1
Build Time: 2015-01-17 14:51:28
Java 1.8.0_31
Windows 7 x86-64
Dell Optiplex 745 (Intel Core 2 Duo E6300)

Secondary test environment:
BORG - Berger-Organizer 1.8.1
Build Time: 2015-01-17 14:51:28
Java 1.7.0_65
Ubuntu 14.04 LTS x86-64
Macbook Pro 13" (Intel Core i5-2415M)

Metadata:

Severity: Low
Reproducible: Yes (always)
Affected platforms: Windows 7, and likely Windows 8 (did not have Windows 8 available for testing)

When renaming a checklist with unsaved item(s), the "Discard Text?" pop up message will appear more than once when choosing to cancel changes.

Problem description:

When attempting to rename a checklist with unsaved item(s) it will causes the "Discard text?" pop up message to appear multiple times when the user chooses to cancel the discarded changes. Not only that, it will cause the other checklists to temporarily disappear while performing canceling operation. Moreover, the more stored checklists the user have, the greater number of "Discard text?" pop up message will appear. The issue only appears when running BORG on Linux environment.

Note

This issue is only present when using OpenJDK version 7. Since this is not reported on this page
http://mbcsoft.com/joomla30/index.php/borg/12-linux-peculiarities
It is good to update the issues list on Linux system

Environment and Setup:

Hardware: Clevo Laptop
JDK version: OpenJDK Java 7 development kit
Java version: 1.7.0_75
CUPS version: 2.0.1-1
System type: 64-bit
OS: ArchLinux
BORGCalendar Version: 1.8.1

How to reproduce the issue:
  1. Create a new checklist.

    * For example, list 1
    
  2. Add item to newly created checklist and do not click on 'Save checklist'.

    * add item 1 to list 1
    
  3. Rename the new created list to a different name by performing right-click-> rename.

    * Rename list 1 to list 2
    
  4. A pop up "Discard Text?" message will appear.

  5. Click on "'Cancel". However, the pop up message will appear more than once.

  6. Click on "Cancel" many times to remove the pop up message.

  7. This will also caused the checklists to disappear and reapperar as you press "Cancel" button.

Suggestion for Fix:
  1. "Discard text?" pop up message should not appear after choosing to press cancel.
  2. If there is more than one checklist, they should not disappear when choosing to cancel option on "Discard text?" pop up message.

Documentation/Code Mismatch: Hitting F1 does not produce results specified by the Calendar's SRS

Problem description:

The Software Requirements Specification for the BORG calendar mentions that:

  1. SRS for BORG Calendar: 1.5 References - "The online help that can be accessed (after having installed and run the application) by hitting F1 or using the Help menu."
  2. SRS for BORG Calendar: 2.6 User Documentation - "Included in the installation files is a user manual (which is not complete, nevertheless very useful) that can be accessed from within the program by hitting F1 or using the Help menu."
Environment and Setup:

Hardware(s): ASUS Laptop, Dell Laptop
OS: Windows 8.1
Java version: 1.8.0_31
System type: 64-bit Operating System, x64-based processor
BORG Calendar Version: 1.8.1

How to reproduce the issue:
  1. Launch the BORG Calendar application.
  2. Hit f1.
  3. Notice that no result is produced. Notice that neither the online help nor the user manual appears.

Note: Hitting F1 for the "Help" option is a very popular requirement by clients and is therefore available in lots of apps, so it would be unusual if this does not produce results for clients (especially those that have read the SRS for the Calendar).

NPE when importing XML

NPE when importing XML ZIP if there are no entries in the SYNCMAP table. Workaround is to delete the SYNCMAP.xml from the zip.
the error halts the import and some record types will not load.
Introduced in 1.8.

Phone numbers in Address Book tab allows alphabets in them.

Description:

BORG Calendar's address book allows user to add alphabets in Cell Phone, Home Phone and Work Phone while adding a new contact.

Steps to reproduce:

  1. Start BORG Calendar 1.8.1
  2. Open the "Address Book" tab.
  3. Click on "Add new" button and create a dummy contact with any of the phone numbers containing alphabets in them. Note that the contact is successfully saved upon clicking "Save" button.

Suggested Fix:

Prompt a user with an error dialog box for inserting alphabets in phone numbers.

Environment:

Primary test environment:
BORG - Berger-Organizer 1.8.1
Build Time: 2015-01-17 14:51:28
Java 1.8.0_31
Windows 7 x86-64
Dell Optiplex 745 (Intel Core 2 Duo E6300)

Secondary test environment:
BORG - Berger-Organizer 1.8.1
Build Time: 2015-01-17 14:51:28
Java 1.7.0_65
Ubuntu 14.04 LTS x86-64
Macbook Pro 13" (Intel Core i5-2415M)

Metadata:

Severity: Low
Reproducible: Yes (always)
Affected platforms: All

Exporting out to XML then importing the exported file causes an SQL exception

Description:

Exporting out to XML then importing the exported file causes an SQL exception.

Steps to Reproduce:

1. Start BORG Calendar 1.8.1
2. Click on Import/Export > Export XML
3. Click on Import/Export > Import Entire Backup ZIP file and select the newly made file

Suggested Fix:

Have the ability to merge tables rather than simply importing a new one with the same primary key (causing a violation in the schema).

Environment:

BORG - Berger-Organizer 1.8.1
Java 1.8.0_31-b13
Windows XP Professional Service Pack 3
Dell Optiplex 8020 (Intel Core i7-4770, 512MB RAM)

Other:

Can reproduce: Yes
Severity: Low

Renaming an existing checklist to an old one with the same name causes items to be overridden with no warning

Problem description:

When changing the name of a checklist to an already existing checklist name, the checklist that is being renamed overrides the old checklist without a warning. This causes the old checklist items to be deleted.

Environment and Setup:

Hardware: Clevo Laptop, Desktop
OS: ArchLinux Kernal v.3.18.3, Windows 7
BORGCalendar Version: 1.8.1

How to reproduce:
  1. Create a new checklist, call it a. Add an item to a, call it item 1.
  2. Create another checklist, call it b. Add an item to b, call it item 2.
  3. right click checklist b and rename it to a
  4. The old checklist a items will be deleted with no warning
    • item 1 will be deleted
  5. The new checklist a will now contain the items of checklist b
    • a will now contain item 2
Suggestion for Fix:
  • prevent the deletion of the old checklist so that the user does not lose any items when performing renaming.
  • issue a pop-up warning letting the user know that the name already exists, and prompt them to rename into something new or let them know that the new checklist will override the old one.

How to "tear off" ToDo list

On one installation of Borg, the ToDo list is a tab on the main display; on another installation, it's a separate "sheet" one can move around independently of the main display. I'm not sure how I arrived at the second version but I prefer it.
How do I "tear off" the ToDo list from the first display?
Is it also possible to "tear off" the Week list from the main display, which I'd find very convenient?

No warning is issued when directory is modified and no longer exists when attempting to backup files on shutdown

Problem description:

When the backup directory is modified e.g moving it to another location, renaming, or even deleting it, the BORG Calendar will not store the backup files provided that the user selected the backup option on shutdown. The user will be misled to believe that the BORG Calendar is actually creating backup files since no warning is given that the directory is missing.

Environment and Setup:

Hardware: Clevo Laptop, Desktop
OS: ArchLinux Kernal v.3.18.3, Windows 7
BORGCalendar Version: 1.8.1

How to reproduce:
  1. Go to Options -> Edit preferences -> Miscellaneous tab
  2. In the Backup Folder, browse and create a new folder as a directory.
    • create a folder called 'test', and save.
  3. For the On Shutdown option: Select Backup to file
  4. Delete or rename the directory you just created.
    • delete or rename 'test'
  5. Close BORG Calendar. The backup files will not be stored and no notification of the directory not existing will be issued
  6. Same behavior applies when selecting 'On Shutdown: Prompt for backup action'
Suggestion for Fix:
  • If the directory selected in Backup Folder option was modified/no longer exists, create the directory and store the backup files there.
  • Another solution, If the directory selected in Backup Folder option was modified/no longer exists, notify the user that the directory does not exist and hence no backup of the files are being stored.

Enhancement add instant reminder into Email subject

please also add:
Email Subject: Reminder detail of what is happening now:
(eg. 8am reminder: BORG reminder: "Walk dog" in subject of email.)
(i.e. please make email reminder look similar to popup reminder.)
Also: BORG Email Reminder Notice: Currently hourly reminders show up unsorted:
eg. Appointments for 18 Nov 2014
13:00 refill
08:00 Walk dog
19:00 Report Faults
09:30 test your phone

please sort by time.

Print button does nothing when encountering an empty tab

Descprition:

With no tabs open, pressing the Print Button does nothing, or with a tab open (ie. Memos), and no items in that tab, pressing the Print Button does nothing.

Steps to Reproduce:

1. Start BORG Calendar 1.8.1
2. Close all tabs
3. Press the print button

Suggested Fix:

Present an error message or have a popup dialog advising the user what to print

Environment:

BORG - Berger-Organizer 1.8.1
Java 1.8.0_31-b13
Windows XP Professional Service Pack 3
Dell Optiplex 8020 (Intel Core i7-4770, 512MB RAM)

Other:

Can reproduce: Yes
Severity: Minimal

Moving or Changing the Date of a repeating appointment

Problem description:

Making a repeating appointment and changing the date of any one repeating appointment will change all the appointments that were repeating. (For example an appointment that is repeated on weekly basis such as "Visit Grand Parents" and moving any one of the appointment to different day will move all of them to that same day)

Reference from SRS for BORG Calendar:

REQ-7: The user cannot move (alter the date) of any occurrence of a series of
repeating appointments. If he/she tries to do so, a window will pop up
informing him/her that only the first occurrence of the series can be moved.
By doing that the whole series will be moved as one.

Environment and Setup:

Hardware(s): ASUS Laptop, Dell Laptop
OS: Windows 8.1
Java version: 1.8.0_31
System type: 64-bit Operating System, x64-based processor
BORG Calendar Version: 1.8.1

How to reproduce the issue:
  1. Make an appointment.
  2. Select a frequency of recurrence of appointment (Weekly).
  3. Select Repeat forever.
  4. Go to Monthly view.
  5. Drag that appointment and shift to another one (you can choose any appointment).
  6. No warning or pop up box shows up and it moves all the appointments to that day.
  7. So the requirement from the specification is not satisfied.
sample files:

capture1
capture2

Deleted contacts with birthdays do not update properly on current month view nor on the address book.

Problem description:

Right after deleting a contact with a birthday in the current month view from the address book, it makes no changes to the month view until an action (like scrolling to the next month and scrolling back to the original month) is done to the page of the month. Occasionally, the deleted contact does not also disappear from the address book i.e, it still shows on the address book even after deleting it.

Environment and Setup:

Hardware(s): ASUS Laptop, Dell Laptop
OS: Windows 8.1
Java version: 1.8.0_31
System type: 64-bit Operating System, x64-based processor
BORG Calendar Version: 1.8.1

How to reproduce the issue:
  1. Launch BORG Calendar
  2. Select Address book
  3. If the address book already contains a contact which has a birthday in the month currently in the month view, then you can skip to step 11. Else, continue from step 4.
  4. Click "add new"
  5. Enter "First name" and "Last name"
  6. Go to "Birthday" and select a date from the calendar in the month currently displayed in the month view.
  7. Click "Save"
  8. Close the address book
  9. Check the month view to make sure the contact appears. If it does not, then scroll it to the next month and scroll back to the original month and the contact should now appear.
    10 Open the address book again.
  10. Delete a contact that has a birthday in the month of the current month view.
  11. Sometimes even after clicking "Ok" to delete the contact, it does not disappear from the address book and if you try re-deleting the same contact, you get a java.lang.NullPointerException.
  12. Check the month view and you will notice that the deletion has not reflected on the month view.
  13. Now scroll to the next month and then scroll back to the original month. The deleted contact finally disappears.
  14. Relaunch the app, and the contact also finally disappears from the address book.

Note that the bug with the address book mostly happens especially after opening and using the calendar for a while (say an hour).

sample files:

The image shows two contacts that have been deleted but still show in the address book. They however do not appear anymore on the month view because I had scrolled to February and then back to January. Trying to delete the same contacts again, produced a java.lang.NullPointerException.
capture1

Consider disabling "Done" buttons on to-do list for the "== Today ==" entry

The Todo list allows users to interact with entries in two primary ways:

  • adding new entries via the bottom section of the window
  • editing and working with existing entries vie the right-click context menu for individual entries

There is a place-holder entry that marks the current date, whose to-do is "===== Today =====".

Concern:

The context menu for the placeholder is disabled, as one might expect since it's simply a placeholder and the application manages it for us. However, the two "Done" buttons underneath the list remain clickable despite not doing anything to the entry -- this could lead one to believe that they have the option to remove the place-holder if they wish, but are offered no way to do that from this view.

image

Suggestions:

Perhaps one of the ideas below would help the application maintain uniform interaction:

  • Disable the two "done" buttons for this entry, in order to keep a consistent appearance that this entry is not changeable in any way
  • allow the user to remove the placeholder entry if they wish, by activating the buttons and allowing them to remove the item

Empty change date changes first recurrence to the current date

Version used: 1.8.1

Procedure

  1. Create a new appointment for the current date in Month View.
  2. Set the recurrence to daily, 20 times.
  3. Save and close the appointment.
  4. Open the appointment on the day after the current date.
  5. Check the "Change Date" checkbox.
  6. Save and close the appointment. Observe that the entire appointment dates change, where the first appointment is for the day after the current date. Expect that the appointment dates do not change or that an error message is given because the Change Date field is blank.

Problem with selection of date using mini calendar option

Problem description:

When you try to assign a date to a task, if you use the mini Calendar to select the date and select
the February Month the application crashes, only the menu bar is functional the rest is not , this also occurs when adding a contact and select the person's birth date using the mini calendar and select the month February.

Environment and Setup:

Hardware(s): ASUS Laptop, Dell Laptop
OS: Windows 8.1
Java version: 1.8.0_31
System type: 64-bit Operating System, x64-based processor
BORG Calendar Version: 1.8.1

How to reproduce the issue:

1.Select Address book.
2.Click "add new".
3.Enter "First name" and "Last name".
4.Go to "Birthday" and select the mini calendar icon beside the input textbox.
5.Once the mini calendar opens select February using the drop down list.
6.Notice that the application is stuck.

sample files:

capture1
capture3
capture2

Alternate way to reproduce the issue:

1.Open Task.
2.Go to the "Tasks" tab ( which is right beside the "Projects" tab).
3.Click "Add" button.
4.Fill out the "Summary"
5.Select a "Start Date" (Suppose 1-Jan-2015)
6.Select a "Due Date" using the mini calender and select February using the drop down list in the mini calender.
7.Notice the application freezes again as described above.

sample files to alternate solution:

killer1
killer2
killer3
killer4

Problem with transferring calendar data

I made the mistake of backing up my /home directory onto an external HD in order to install a new OS on my PC - without exporting the BORG calendar data to a zip file.

Having replaced the old OS and re-installed BORG on the new OS, I thought copying the contents of the backup .borg_db into the new .borg_db folder would transfer my calendar data. Not so, I only get the startup configuration.

There is a file borgdb.lock.db that appears to lock BORG from accessing the copied data (borgdb.h2.db, borgdb.trace.db and an empty folder 'attachments') and I'm quite unable to delete it, or rather, when I do it instantly re-appears.

How can I get the old data accepted?

Allowing an empty First and Last name entry into the address book by using XML imports

Problem description:

An empty first or last name field can be added to the address book by importing an XML file with an empty FirstName/LastName XML tag. This does not satisfy the Function requirement 11, which states:

  • REQ-11: In order for an entry to be added the First and Last Name have to be
    inserted. Otherwise, a window pops up informing the user about this. All
    the other fields are optional.
Environment and Setup:

Hardware: Clevo Laptop, Desktop
OS: ArchLinux Kernal v.3.18.3, Windows 7
BORGCalendar Version: 1.8.1

How to reproduce:
  1. Start with an empty address book (for simplicity), create a new entry:
    • First Name: Steph
    • Last Name: Curry
    • All other fields can be empty
  2. Export XML databases
  3. Extract the exported zip file which contains ADDRESSES.XML
  4. Modify ADDRESSES.XML by removing values of the FirstName tag and LastName tag
    • from step 1, remove Steph from FirstName tag and remove Curry from LastName tag
    • Check that it looks as the following:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
...
...
<FirstName></firstName>
<LastName></LastName>
...
  1. Store the modification and import ADDRESSES.XML
  2. Check the address book, you will find a empty entry for first and last name
Suggestion for Fix:
  • Check that the XML FirstName and LastName tags have valid values when importing to an address book.
  • Display a window informing the user of any missing fields

Cannot open Borg

I just updated to Java Version 7 Update 55. I got rid of all out-of-date Java versions at the same time (security concerns). Now Borg Calendar will not open (or deinstall). Help.

During Import of backup ZipFile, links associated with Appointments are not preserved

Description:

If you perform an export using the Import/Export > Export XML… option, and then import the exported file using Import/Export > Import Entire Backup Zipfile, any links associated with an Appointment will not be preserved.

Steps to Reproduce Issue:

  1. Start BORG Calendar 1.8.1
  2. In the Month view, Right-click a date and click Add New in order to create a new Appointment.
  3. In the Appointment Editor, fill the Subject field with "Appointment_1" and click Save.
  4. Now select Appointment_1 from the Appointment List.
  5. Click the Link file button in the Links section to link a file to Appointment_1.
  6. Select any file; the newly linked file should appear in the Links section.
    image
  7. Now perform an export through the Import/Export > Export XML… option.
    image
  8. Next, delete Appointment_1 by selecting it in the Appointment List and clicking the Delete button
    image
  9. Import the exported zip file back by using the Import/Export > Import Entire Backup Zipfile option
    image
  10. Go the Month view and find Appointment_1 and open the Appointment Editor for it
  11. Notice that there are no links associated with the Appointment
    image

Suggested Fix:

Links should be preserved when an export followed by an import is performed.

Test Environments:

Primary test environment:
BORG - Berger-Organizer 1.8.1
Build Time: 2015-01-17 14:51:28
Java 1.8.0_31
Windows 7 x86-64
Dell Optiplex 745 (Intel Core 2 Duo E6300)

Secondary test environment:
BORG - Berger-Organizer 1.8.1
Build Time: 2015-01-17 14:51:28
Java 1.7.0_65
Ubuntu 14.04 LTS x86-64
Macbook Pro 13" (Intel Core i5-2415M)

Metadata:

Severity: Low
Reproducible: Yes (always)
Affected platforms: All

UI can sometimes fail to show ICS imported entries until restarting the application

When importing an ICS file of calendar entries in BORG Calendar, it is possible to work yourself into the situation where a restart of the application is required to see the newly added entries. All entries that import successfully (with respect to the summary window that pops up after the operation) are present in the database and interacting with these events works as expected.

Environment:

Operating System: OS X Yosemite (10.10), Windows 8.1 Professional
BORG Calendar Version: 1.8.1 for both operating systems

Reproduction:
  1. Import the borg-38-init.ics file, if you do not have pre-existing calendar entries.
  2. Start up BORG Calendar with some entries previously added.
  3. Perform an ICS export to file of the current entries.
  4. Immediately perform an ICS import of an *.ics file from the same directory (borg-38-import.ics).
  5. The majority of the time, the entries will not show up until a program restart.
Notes:
  • Importing the events works even though they don't show up (that is, importing the same *.ics file a second time will alert you to duplicates, as one would expect)
  • Exporting the new calendar event set includes the events that do not visually appear on the calendar (meaning any syncing that happens after the fact considers the newly added data)

(( gist seems to be wonky for me tonight, so apologies in advance for needing to post the init and import ics files I've used here. ))

Starting Data (borg-38.ics):

BEGIN:VCALENDAR
PRODID:BORG Calendar
VERSION:2.0
BEGIN:VEVENT
DTSTAMP:20150201T003511Z
UID:1@BORGA-1422750594180
CREATED:20150201T002954Z
LAST-MODIFIED:20150201T002954Z
SUMMARY:test
DESCRIPTION:test
DTSTART;VALUE=DATE:20150121
DTEND;VALUE=DATE:20150122
CATEGORIES:black,ToDo
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20150201T003511Z
UID:3@BORGA-1422750674122
CREATED:20150201T003114Z
LAST-MODIFIED:20150201T003114Z
SUMMARY:Test event
DESCRIPTION:Test event using commas in the category name.
DTSTART;VALUE=DATE:20150130
DTEND;VALUE=DATE:20150131
CATEGORIES:black,lets,use,commas
END:VEVENT
END:VCALENDAR


Import Data (borg-38-import.ics):

BEGIN:VCALENDAR
PRODID:BORG Calendar
VERSION:2.0
BEGIN:VEVENT
DTSTAMP:20150121T213347Z
UID:1@BORGA-1421869872942
CREATED:20150121T213315Z
LAST-MODIFIED:20150121T213342Z
SUMMARY:This item doesn't appear in the UI until after a restart.
DESCRIPTION:"Test message."
DTSTART;VALUE=DATE-TIME:20150130T155500Z
DTEND;VALUE=DATE-TIME:20150130T193500Z
CATEGORIES:black,cat1,cat2,black
END:VEVENT
END:VCALENDAR


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.