Orangutan (1.05) * Added Usage.txt describing how to use Orangutan. * Added DoneRatio context allowing to change the done ratio of an issue and suggesting the done ratio (closes #171). * When adding/removing watchers from Orangutan he notified the author instead of watcher. Fixed. Thanks Andriy Lundyak! * Now allowing to change minimum time for a break (closes #245). Thanks Yaroslav Dmytriv! * Added Russian and Ukrainian translations (closes #1598). * Added support for Redmine 1.1.0 (closes #1595). * Fixed typo in Monkey class (used "host" instead of "hostname"). * Wrote init.d script (closes #937). * Now Orangutan checks if a plugin's table or a plugin's column is available before writing to/reading from them (closes #535). * From now journals added with Orangutan will have "source" (a new column in "journals" table) equal to "Orangutan" and on issue page will be marked with text "using Orangutan" (closes #1328). * Added support for Google Talk. * Added support for TLS. Now it tries to use TLS by default. * Now supporting different (non-LDAP) Jabber usernames using new column "jabber" (closes #960). * Added new column "jabber" to Redmine "users" table. This column stores Jabber ID and is used as an alternative to "login" column. * Now allowing custom display name instead of just Jabber ID, added "orangutan.display_name" configuration option (closes #1233). * Added INSTALL file describing how to install Orangutan. Thanks David Bennett and Martin Minka! * Included patch from David Bennett fixing crash when trying to upload vCard. Thanks David! * Other fixes. Orangutan (1.04) * Fixed invalid time spent calculation in WorkOver context. Thanks Kostyantyn Kornienko! * Now it is possible to select question by number for FAQ... * Fixed crash when calculating holidays in 2011. Thanks Vitaliy Yatsunskiy! * Now numerical answer on MainActivity context question is not treated as issue number. Thanks Vitaliy Yatsunskiy! * Added Number context. This context is now used to handle numbers. It is like YesNo context - other contexts attach themselves to it (closes #125). * Added CustomFieldAlias context allowing to choose values of which custom field will be used as aliases for issue IDs (closes #1003). * Now UnfinishedTask context should work even after Orangutan restart (closes #126). * Added EmailNotify context allowing to turn off Redmine email notifications (closes #1002). * Added Notify context which allows to turn off Orangutan notifications (closes #1000). Thanks Olya Kulynyn! * Redmine plugin was extended to remove user email from notifications list if it was configured by user, added :no_email_notify option (partially closes #1002). * Added support for start and end time fields in Redmine plugin. This plugin allows to view/edit these fields (closes #1001). * Added savable user custom fields which are named "options" (closes #957). * Other fixes. Orangutan (1.03) * Now Orangutan allows canceling break or closing of the task (but only if he did this by himself) (closes #952). Thanks Yaroslav Dmytriv! * Added WorkOver context notifying users when they have worked for enough hours (closes #127). * Added support for custom fields in ShowIssue context (closes #861). * Added support for queries like "show today tasks" (closes #243). * Added Comment context allowing to add notes to issues (closes #183). * Added WouldWatch context which will be used for asking users if they want to be added to watchers list of issues. * Added Vote context letting users to vote for or against issues (closes #553). * Added Assign context allowing to assign an issue to a user (closes #182). * Added aliases. Aliases allow a user to specify words or messages which will be treated in a way specified by the user (closes #604). * Added RemoveAlias context allowing to remove aliases. * Added ShowAliases allowing users to check their current aliases. * Added Aliases context allowing to set aliases. This context is also responsible for replacing. * Added NewWatcher context notifying users when they are added as watchers to a project or an issue. * Added WatchList context allowing users to check which projects and/or issues they are watching. * Now displaying tracker name and subject in the confirmation message of Task and AddTask contexts. * Added watcher event which will be used to notify users that they were added as watchers to an issue or a project. * Fixed incorrect date representation in the confirmation message of AddTask context. * Added NewJournal context notifying users about changes in issues (partially fixed #185). * Extended context and monkey API (added filters to context and schedule, custom fields to monkey). * Added NewIssue context which notifies watchers about new issues created and/or deleted (partially fixed #185). * Added Watch context allowing to add users to watchers list of projects and issues (closes #606). * Fixed crash when closing current task loaded from XML file. Thanks Kostyantyn Kornienko! * Other small and bigger fixes. Orangutan (1.02) * The UnfinishedTask context performed the default action despite user input. Fixed! Thanks Kostyantyn Kornienko! * If ignored the WorkHours context remained active forever. Now removing the WorkHours context every night at 6:00. * ShowIssues context was modified to allow seeing subissues of a specified issue. * Now supporting version string in project name. * Added TaskReport allowing to generate an activities report for a specified issue (closes #616). * Now including issues of subprojects when showing issues for a specified project (closes #568). * ShowIssues context now supports issues tree - that is shows issues structure (closes #557). * Added ShowComments context allowing to fetch all comments for a certain issue (closes #494). * Added TasksReport context generating report showing what tasks were done during some period (closes #452). * Support of adding past tasks with just duration that is without start and end times (closes #284). * Added Continue context allowing to continue working on the previous task (closes #552). Thanks Kostyantyn Kornienko! * Added DailyReport context intended for generating reports containing time spent for each day (closes #453). Report also tells how much time should be added to each day. * Added the first monkey for Redmine. It consists of "plugin" "Redmine" for Orangutan and plugin "RedMonkey" for Redmine. The monkey notifies Orangutan about new issues, changes in issues and new time logs. * Added special plugins/contexts called monkeys to the architecture. Monkeys will be responsible for notifying Orangutan about external events (e.g. events in Redmine). * Added new patterns and improved existing ones. Thanks Kostyantyn Kornienko! * Other small and bigger fixes. Orangutan (1.01) * Orangutan did not write anything to charts tables. That's why not all spent hours were shown on Redmine charts. Fixed this (closes #470). Thanks Andriy Lundyak! * Added Welcome context which gives a hint to a new registered user. * Now updating undo reference when timeout occurs and onTimeout handler is defined. * Fixed incorrect calculation of elapsed time in Date class if the date was in future. Thanks Lyuba Kryl! * NightTask asked "Are you there?" even if a user just sent a message. This happened if another context was added to output queue before NightTask. * Added ShowIssue context allowing to check issue details (closes #157). * Added ShowConfig context allowing to check user's configuration (closes #123). * Added possibility to clear the default and task's issue (closes #188). * Now allowing to save tasks/time entries without issues (closes #188). * Fixed wrong sum calculation in ShowTime context. * Fixed response handling in ShowTasks and ShowTime contexts. These contexts complained about no permissions. Thanks Olya Malaniuk! * If issue is not specified in the request Orangutan now tries to "extract" issue ID from task description. Thanks Ivanka Vypasnyak! * Now supporting start time and issue ID at the beginning of the request in the Task context. Thanks Dana Vlasyuk and Ivanka Vypasnyak! * Added ShowIssues context allowing to get list of issues (closes #156). * Fixed AddTask context to prevent treating first part of the format HH-MM - HH-MM as DD-MM. Thanks Dana Vlasyuk! * Setting USER_UNCONFIGURED for new users. Without this flag Orangutan did not ask a new user for project, issue etc. Thanks Ivanka Vypasnyak! * Modified the internal scheduler to run only generic contexts. * Removed 1 minute interval between tasks which was required by OrangeHRM but is not needed for Redmine (closes #149). * Added nomatch handler to the Task context (tells users to describe what they are doing). Thanks Lyuba Kryl! * Answering on WorkHours question in a day or more led to crash. Fixed. Thanks Dana Vlasyuk! * Added new patterns. Thanks Yevgen Vershynin, Yaroslav Dmytriv and Andriy Lundyak! * Other small fixes. Orangutan (1.00) * Fixed invalid required hours calculation in WorkHours context for users who worked less than 5 hours per day. * Removed bug reporting contexts to avoid conflicts with Redmine's issues. * Moved to Redmine. Orangutan (0.11) * Now notifying the creator when a new user registers or an existing user unsubscribes. * User's context timeout blocked other users' contexts. Fixed. * Added support for number of hours in WorkTimeHours context. Thanks Dana Vlasyuk! * Now notifying the submitter about closing bug. * Added warning if the task name is too long and will be truncated when saved to OrangeHRM. Thanks Andriy Lundyak! * User::GetWorkDays returned zero if called for a one day. Fixed (closes #28). Thanks Ihor Vlasyuk! * Removed StartTask context (replaced by Help context). * Added Help context providing the information about supported requests and features (closes #23). Thanks Lyuba Kryl for the idea about short tutorial! * Added many new patterns to different contexts and fixed many existing patterns. Thanks Andriy Lundyak, Oleg Demyanyuk, Lyuba Kryl, Yaroslav Dmytriv and Dana Vlasyuk! * Other small fixes. Orangutan (0.10) * Added new patterns to Done context and fixed Done and ShowTask contexts mess. Thanks Yaroslav Dmytriv and Lyuba Kryl! * Fixed bug with undefined variable in WorkHours context. This led to logoff when user tried to create new task. Thanks Andriy Lundyak! * Added checking for end time and duration in ShowTasks context. Thanks Yaroslav Dmytriv. * Other small fixes. Orangutan (0.09) * Added AskTask context allowing to configure if Orangutan should remind user about entering tasks. * Added support for project names like "Client - Project". * ShowTime context added 8 hours to the total required time sometimes. Fixed this. * From now the WorkHours context asks an user to add tasks only once on weekend (earlier it did this every day). * Added handling of invalid time after 0:00 for "today" in AddTask context (it added future tasks - now returns an error). * Now ShowActivities can be used without the project name. In this case Orangutan is using the project of the current task (if present) or the main project. Thanks Olya Bandura! * Fixed UnfinishedTask to close the task if it lasts for more than 8 hours. Thanks Olya Bandura! * Now Project and Activity contexts get disabled if the task has been canceled (this led to blocking Task context - everything typed was treated as a project name and not as a task name). Thanks Olya Bandura! * Made other small and bigger fixes. Orangutan (0.08) * Changed NightTask not to ask "Are you there?" at the morning (added some kind of timeout). * Now Orangutan tells the date (week day, month etc) when suggesting to add additional tasks in WorkHours context. * Now Orangutan explains why he cannot accept the end time if it is earlier than the task's start time. Thanks Dima Kondratovych! * Now UnfinishedTask context (asking if the task should be stopped or broken) has a higher priority than NightTask context (checking if an user is still available) this way preventing "Are you there?" question to be asked before UnfinishedTask's questions. * Added ShowTime context which shows a summary of how much time did an user spent for tasks during some period (closes #7). * Added total time to ShowTasks output. * Now ShowTasks uses the previous date as a base date if it is between 0:00 and 6:00. Thanks Dima Kondratovych! * Changed the method of detecting non-ascii symbols. Previous method produced false matches sometimes. Thanks Olya Bandura! * Added support of XA (Far, far away) status. Thanks Lena Petsenchuk! * Added some new request patterns and many other fixes. Orangutan (0.07) * Now Orangutan is able to detect changes made to the active task through OrangeHRM (if the task was initially added through OrangeHRM). Thanks Yevgen Vershynin! * Now WorkHours generates more adequate suggestions. Thanks Olya Kulynyn! * Added WorkDays contexts allowing to specify which weekdays are working days for an user. Thanks Nadya Malaniuk! * WorkHours context (which asks to add hours for the previous work day) now also checks for leaves. Thanks Pavlo Mashurenko! * Now it tries to reconnect eternally if Jabber connection was lost. * Now Orangutan sets vCard information what adds him to the users directory (without this QIP users were unable to add him to their rosters). Thanks Nadya Malaniuk! * Added a lot of new features and fixes to bug related contexts (closes #3). * Added ShowTasks context (shows previous tasks for any period) (closes #8). * Added duration to messages showing task details (current task, when task completed and when task was added). * Many other small and bigger fixes. Orangutan (0.06) * Fixed Orangutan to support statuses like DND which were ignored previously. For now such statuses are treated the same way as online status. Thanks Dima Kondratovych! * ShowTask context is now able to show tasks of other users (only for creator or manager). * Often tasks now work well (but use future time) (closes #10). * Now Orangutan selects the first activity for the project if no activity was specified. * Fixed invalid handling of new line characters in input messages. Thanks Olga Kulynyn! * Added task description to success messages for Done context. * Fixed invalid date handling if end time (hours and minutes) is smaller than start time (e.g. start time is 23:00 and end time is 0:00). Thanks Dima Kondratovych! * Added support for resource (several logins into Jabber server). Thanks Dima Kondratovych! * Now UnfinishedTask ensures that break start time is not earlier than task's start time (this led to negative task time). Thanks Dima Kondratovych! * Fixed many other small issues. Orangutan (0.05) * Added timeouts to Project, Activity and WorkHours contexts (will block next contexts until questions are answered). * Added NightTask context (ensures that the user is online at 21:00 or later (depends on user's settings) and stops the task if not) (closes #24). * Added WorkTimeStart context (allows user to configure the start time of his working day). * Made other important fixes. Orangutan (0.04) * Added WorkTimeHours context (allows user to configure how much hours per day he works). * Added WorkHours context - checks if working hours are enough for previous workday and suggests what could be added if not (closes #16). * Changed UnfinishedTask context to stop tasks on timeout if it is not work time. Partially fixes #24. * From now foreign handlers also can be suspended while user is away. Now Yes/No won't timeout before main context timeouts. Thanks Pavlo Mashurenko! * Fixed existing task issues (when current task was added using OrangeHRM "Punch In"). Thanks Yevgen Vershynin! * Added Evaluate context allowing to execute a custom code inside Orangutan. This context is available only for creator and is only for debugging. * Now we are catching error messages on die and writing them to log file. * Many other small and bigger fixes. Orangutan (0.03) * Added AddTask context (allows to add previous tasks that is tasks which have end time). * Changed the way Orangutan detects conflicts in tasks time. Now he suggests better options how the conflict can be resolved. * Now any number of spaces is supported in incoming messages. * Changed the behaviour of the UnfinishedTask contexts (asks to stop or break a task). Now it tries to detect often status changes and stops tasks in such cases. Partially fixes #24. * Added status fields cleaning for several contexts. Thanks Pavlo Mashurenko! * Added StartTask context (catches requests to start a task which look like "I want to start a task"). Thanks Olga Kulynyn! * Now Orangutan won't ask an user to enter a task if it is not work time. * Fixed contexts mess on first run (task reminder prevented configuration questions to be asked). Thanks Pavlo Mashurenko! * Added WhatNew context (shows what's new in current or specified version of Orangutan). Uses this changelog file. Orangutan (0.02) * Added Version context (show current version of Orangutan). * Added this changelog. * Now ignoring tasks in OrangeHRM database which do not have start date. Thanks Pavlo Mashurenko. * Added workday event (start and stop). Used this event in WhatTask context (asks user to specify the task). * Added ShowHolidays context (shows ukrainian holidays for a year). * Added holidays support as well as IsWorkDay function to Orangutan::Date object. * Fixed scheduler and corresponding code in different contexts. * Added LongTask context (does not allow task to last over 24 hours) (closes #6). * Added checks if project and activity are set for tasks on close. * Fixed context to limit task time to 24 hours (closes #6). * Fixed Orangutan::Date object. Now its constructor supports task's start time. For example, when you create it with '18:00' the time will be relative to the start time not to current time as it was before (partially fixes #6). * Added EditTask context (just explains how current task can be edited). * Added some new request patterns. Thanks Olga Kulynyn! Orangutan (0.01) * Initial release.