Git Product home page Git Product logo

ped's People

Watchers

 avatar

ped's Issues

Unable to input non-integer GMT timezones

Certain parts of the world are on non-integer GMT timezones. For example, Indian is on GMT+5.5. This means that I cannot accurately track the timezones of any clients living in India.

IndexOutOfBoundsException after finding a client when the display panel is already showing another client

Steps to replicate (using the default data on initial application load):

client view 5
client find alex

Full log:

INFO: =============================[ Initializing TBM ]=============================
Oct 30, 2020 4:15:51 PM seedu.address.MainApp start
INFO: Starting TbmManager V1.2.1ea
Oct 30, 2020 4:15:51 PM seedu.address.ui.UiManager start
INFO: Starting UI...
Oct 30, 2020 4:15:59 PM seedu.address.logic.LogicManager execute
INFO: ----------------[USER COMMAND][client view 5]
Oct 30, 2020 4:15:59 PM seedu.address.logic.parser.MainParser parseCommand
INFO: Command Type: client Rest of command:  view 5
Oct 30, 2020 4:15:59 PM seedu.address.logic.parser.MainParser parseClientCommands
INFO: Command Type: view Rest of command:  5
Oct 30, 2020 4:15:59 PM seedu.address.model.widget.WidgetModelManager setWidgetClient
INFO: Setting client of widget to: Irfan Ibrahim
Oct 30, 2020 4:15:59 PM seedu.address.ui.MainWindow executeCommand
INFO: Result: Viewing client: Irfan Ibrahim
Oct 30, 2020 4:15:59 PM seedu.address.ui.MainWindow executeCommand
INFO: Widget View Option: CLIENT
Oct 30, 2020 4:15:59 PM seedu.address.ui.MainWindow executeCommand
INFO: Toggling client view
Oct 30, 2020 4:15:59 PM seedu.address.model.widget.WidgetModelManager getWidgetClient
INFO: Retrieving client of widget: Irfan Ibrahim
Oct 30, 2020 4:15:59 PM seedu.address.ui.MainWindow executeCommand
INFO: Irfan Ibrahim
Oct 30, 2020 4:15:59 PM seedu.address.model.widget.WidgetModelManager getWidgetClient
INFO: Retrieving client of widget: Irfan Ibrahim
Oct 30, 2020 4:16:02 PM seedu.address.logic.LogicManager execute
INFO: ----------------[USER COMMAND][client find alex]
Oct 30, 2020 4:16:02 PM seedu.address.logic.parser.MainParser parseCommand
INFO: Command Type: client Rest of command:  find alex
Oct 30, 2020 4:16:02 PM seedu.address.logic.parser.MainParser parseClientCommands
INFO: Command Type: find Rest of command:  alex
Exception in thread "JavaFX Application Thread" java.lang.IndexOutOfBoundsException
        at javafx.collections.transformation.SortedList.get(SortedList.java:168)
        at seedu.address.ui.WidgetViewBox.lambda$new$0(WidgetViewBox.java:60)
        at com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(ListListenerHelper.java:329)
        at com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73)
        at javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:233)
        at javafx.collections.transformation.SortedList.sourceChanged(SortedList.java:114)
        at javafx.collections.transformation.TransformationList.lambda$getListener$0(TransformationList.java:106)
        at javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88)
        at com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(ListListenerHelper.java:164)
        at com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73)
        at javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:233)
        at javafx.collections.transformation.FilteredList.refilter(FilteredList.java:338)
        at javafx.collections.transformation.FilteredList.access$000(FilteredList.java:50)
        at javafx.collections.transformation.FilteredList$1.invalidated(FilteredList.java:102)
        at javafx.beans.property.ObjectPropertyBase.markInvalid(ObjectPropertyBase.java:112)
        at javafx.beans.property.ObjectPropertyBase.set(ObjectPropertyBase.java:147)
        at javafx.collections.transformation.FilteredList.setPredicate(FilteredList.java:125)
        at seedu.address.model.ModelManager.updateFilteredClientList(ModelManager.java:253)
        at seedu.address.logic.commands.ClientFindCommand.execute(ClientFindCommand.java:37)
        at seedu.address.logic.LogicManager.execute(LogicManager.java:51)
        at seedu.address.ui.MainWindow.executeCommand(MainWindow.java:185)
        at seedu.address.ui.CommandBox.handleCommandEntered(CommandBox.java:40)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:567)
        at com.sun.javafx.reflect.Trampoline.invoke(MethodUtil.java:76)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:567)
        at com.sun.javafx.reflect.MethodUtil.invoke(MethodUtil.java:273)
        at com.sun.javafx.fxml.MethodHelper.invoke(MethodHelper.java:83)
        at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1784)
        at javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1670)
        at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
        at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
        at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
        at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
        at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
        at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
        at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
        at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
        at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
        at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
        at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
        at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
        at javafx.event.Event.fireEvent(Event.java:198)
        at javafx.scene.Node.fireEvent(Node.java:8879)
        at com.sun.javafx.scene.control.behavior.TextFieldBehavior.fire(TextFieldBehavior.java:184)
        at com.sun.javafx.scene.control.behavior.TextInputControlBehavior.lambda$keyMapping$62(TextInputControlBehavior.java:330)
        at com.sun.javafx.scene.control.inputmap.InputMap.handle(InputMap.java:274)
        at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218)
        at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
        at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
        at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
        at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
        at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
        at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
        at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
        at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
        at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
        at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
        at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
        at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
        at javafx.event.Event.fireEvent(Event.java:198)
        at javafx.scene.Scene$KeyHandler.process(Scene.java:4058)
        at javafx.scene.Scene$KeyHandler.access$1500(Scene.java:4004)
        at javafx.scene.Scene.processKeyEvent(Scene.java:2121)
        at javafx.scene.Scene$ScenePeerListener.keyEvent(Scene.java:2595)
        at com.sun.javafx.tk.quantum.GlassViewEventHandler$KeyEventNotification.run(GlassViewEventHandler.java:217)
        at com.sun.javafx.tk.quantum.GlassViewEventHandler$KeyEventNotification.run(GlassViewEventHandler.java:149)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
        at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleKeyEvent$1(GlassViewEventHandler.java:248)
        at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:390)
        at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleKeyEvent(GlassViewEventHandler.java:247)
        at com.sun.glass.ui.View.handleKeyEvent(View.java:547)
        at com.sun.glass.ui.View.notifyKey(View.java:971)
        at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
        at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
        at java.base/java.lang.Thread.run(Thread.java:830)

Not possible to only edit the tags of client notes

Whenever the client note edit command is used, the nt parameter has to be supplied. In addition, the application does not allow for copying of client notes. This means that if I wish to update the tags of a particular client note, I have to retype the entire note.

Naming of 'list' command is inconsistent

All commands that deal with clients are prepended with client. The list command however, is not. This is quite inconvenient as every other command dealing with clients have client in front.

Able to delete country notes which are not displayed

In the user guide, it is stated that:

Deletes a note that is associated with a specific country at the given index based on the current view of the list panel displaying country notes.

However, it is possible to delete country notes which are not even being displayed. This is very confusing to the user.

Steps to replicate (using the default data on initial application load):

country note add c/SG nt/has one of the lowest corporate taxes in the world t/tax
country note delete 1

Full log:

INFO: =============================[ Initializing TBM ]=============================
Oct 30, 2020 4:41:52 PM seedu.address.MainApp start
INFO: Starting TbmManager V1.2.1ea
Oct 30, 2020 4:41:52 PM seedu.address.ui.UiManager start
INFO: Starting UI...
Oct 30, 2020 4:42:09 PM seedu.address.logic.LogicManager execute
INFO: ----------------[USER COMMAND][country note add c/SG nt/has one of the lowest corporate taxes in the world t/tax]
Oct 30, 2020 4:42:09 PM seedu.address.logic.parser.MainParser parseCommand
INFO: Command Type: country Rest of command:  note add c/SG nt/has one of the lowest corporate taxes in the world t/tax
Oct 30, 2020 4:42:09 PM seedu.address.logic.parser.MainParser parseCountryCommands
INFO: Command Type: note Rest of command:  add c/SG nt/has one of the lowest corporate taxes in the world t/tax
Oct 30, 2020 4:42:09 PM seedu.address.logic.parser.MainParser parseCountryNoteCommands
INFO: Command Type: add Rest of command:  c/SG nt/has one of the lowest corporate taxes in the world t/tax
Oct 30, 2020 4:42:09 PM seedu.address.model.note.Note <init>
INFO: --------------[New Note created with contents: has one of the lowest corporate taxes in the world]
Oct 30, 2020 4:42:09 PM seedu.address.model.note.Note <init>
INFO: --------------[New Note created with contents: ]
Oct 30, 2020 4:42:09 PM seedu.address.model.note.Note <init>
INFO: --------------[New Note created with contents: has one of the lowest corporate taxes in the world]
Oct 30, 2020 4:42:09 PM seedu.address.ui.MainWindow executeCommand
INFO: Result: Successfully added country note for Singapore (SG): [Singapore (SG)] has one of the lowest corporate taxes in the world
Oct 30, 2020 4:42:09 PM seedu.address.ui.MainWindow executeCommand
INFO: Widget View Option: NONE
Oct 30, 2020 4:42:14 PM seedu.address.logic.LogicManager execute
INFO: ----------------[USER COMMAND][country note delete 1]
Oct 30, 2020 4:42:14 PM seedu.address.logic.parser.MainParser parseCommand
INFO: Command Type: country Rest of command:  note delete 1
Oct 30, 2020 4:42:14 PM seedu.address.logic.parser.MainParser parseCountryCommands
INFO: Command Type: note Rest of command:  delete 1
Oct 30, 2020 4:42:14 PM seedu.address.logic.parser.MainParser parseCountryNoteCommands
INFO: Command Type: delete Rest of command:  1
Oct 30, 2020 4:42:14 PM seedu.address.ui.MainWindow executeCommand
INFO: Result: Deleted country note at index 1: [Singapore (SG)] has one of the lowest corporate taxes in the world

Invalid parameter example

Under the Parameter constraints summary section, the following is stated:

Phone numbers should only contain numbers, and it should be at least 3 digits long.
e.g. p/9123 4567

The example input however does not work as it contains a whitespace.

Unable to add duplicate client notes

In the user guide, it is not stated anywhere that duplicate client notes are not allowed. Yet, the application does not allow the adding of client notes with the same text.

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.