Add Number and Memo to the CSV export
Fix bug where users in very different timezones from the BuddiLive server would not be able to execute scheduled transactions at the right date.
Upgrade moss.restlet
Upgrade moss.restlet
Fix bug which caused corruption with some input strings
Added the ability for users to disable the IP Lock functionality at login time. This allows Buddi to work when used with VPNs or ISPs which regularly change the end user's public IP addresses.
Fix bug where users who had registered with upper case letters in their email addresses could not log in
Allow persisting account tree width
Remove stateful flag from budget tree
Remove sort capability from account tree, and remove stateful flag
updating libs
Updating libraries
Upgrading libraries
Upgrading third party libs
Updating moss libs
Merge branch 'wip'
* wip:
Adding support for TOTP
Adding support for TOTP
remove debugging statement
Sharing WIP, this is not complete
WIP on upgrading auth framework
Adding support for TOTP
Adding support for TOTP
Upgrade source version
remove debugging statement
remove debugging statement
Sharing WIP, this is not complete
WIP on upgrading auth framework
Replace log4j with slf4j
Update crypto library to fix cyphertext issue
Updating javamail
Updating javamail
Don't overwrite splits if the values are already set.
Fix validation bug when editing budget amounts greater than 999.99
Show thousands separator in currency field
Fix number formatting for currencies with a comma as a decimal separator
Fix some validation messages
Don't import splits with zero amount
Adding logging for errors when restoring backup .json
Show net worth at bottom of My Accounts
Add totals to Types in the My Accounts screen. Upgrade some libraries.
Fix bug in Net Worth graph; Add loading mask and refresh buttons to reports.
Add a premium report showing inflow / outflow by payee (transaction description)
Show more information in the scheduled transactions grid
Add a premium report "Inflows and Outflows by Account". This tracks all the money going into an out of accounts over the course of the specified period. This can allow you to see things like how much you use a credit card, to calculate whether a card with a yearly fee is worth the expense.
Adding Export CSV as a premium feature for those who have submitted a donation.
Removing unused libraries
Adding Export CSV as a premium feature for those who have submitted a donation.
Bug fixes after upgrading dependencies to current versions
Updating terms and conditions and license, including information on cookies
Upgrading dependencies to current versions
Upgrading dependencies to current version
Added tutorial
Updating index page to adjust text, and adding more help to the registration / reset password process.
Updating index page to adjust text, and adding more help to the registration / reset password process.
No longer in beta
Fix JS error when editing / creating accounts
Show subtotals for income and expenses in Income and Expenses by Category report
Fixing some issues with currencyfield and large numbers
Fix some bugs with budget category, and add totals to average income and expenses report
Fix legend position on line charts
Fix bug where previous transaction was not auto populating fields
Added timeout logout after 15 min of inactivity
Add average budgeted and difference columns to the new report
Added a new report type "Average Income and Expenses by Category"
Deleted dedicated model classes in favour of inline fields for stores
Fixed some issues where we were accessing .raw instead of .data (upgrade issue)
When backing up scheduled transactions, decrypt the name prior to exporting.
Working on charts. Charts seem to be working now. Scheduled transactions do not appear to be working; start looking at the editor, and then verify operation.
A bunch of updates to Ext JS 6.2.0. Charts don't work yet, but most everything else seems to (although more testing is definitely needed)
Prevent backspace from going back in history
Fix percentage calculation bug in pie graphs
Added option to turn off registration dialog
Fixed bug preventing the modification of budget categories
Updated to use new Moss Restlet library, to allow Callable key generator instead of cookie key which is read once at startup.
Fixed bug which didn't show the proper from address on activation sent emails
Fixed bug in Users.xml which prevented new registrations from being processed
Split out activation keys into its own table, to better track activation key expiry. Fixed some bugs in registration and password reset. WARNING: if you apply this change to a production system, you will need to manually modify the database by either dropping all tables and re-creating automatically (and then restoring the data), or by manually changing the liquibase migration tables (databasechangelog) to only see the new change log IDs and MD5 hashes, and then remove the activation_key column from users table.
Upgrade moss restlet
Re-adding shadow to login dialog, this time working on IE all the way back to 7, as well as modern browsers
changing skin on login form
Fixed bug on scheduled transactions where the amount would not load properly
Changed colors on the chart icons to better match Buddi color scheme
Completed i18n for Net Worth over Time and Account Balances over Time
Got net worth graph working properly.
Account Balances over Time is now more or less working properly.
Convert fonts in logo to paths
More work on balances report
Starting out as "Account balances over time"; this will later be
expanded to 'net worth over time' as well.
WIP for net worth over time report. GUI is more or less functional; need to write resource / DB access now.
When using Derby, if you connect without a db.url it will auto generate the database in the user's application data folder (~/.buddilive/derby on Linux, etc). Updated docs on how to run in standalone mode.
Consolidate liquibase migrations into the original create statements. WARNING: if you apply this change to a production system, you will need to manually modify the database by either dropping all tables and re-creating automatically (and then restoring the data), or by manually changing the liquibase migration tables (databasechangelog) to only see the new change log IDs and MD5 hashes.
Updated logo SVG source
Insert ads using https to avoid mixed content messages
Fix position of header logo in IE7
Working on look and feel for login page and banner
Added SVG logo, with pinstripe + gradient background for login page and
associated info pages (copyright, terms and conditions, encryption,
etc). Added smaller version of logo in the main application on the
right of the ad bar.
Show date range in report title
Show the date range (either human readable 'This month', 'Last year',
etc or the actual date range like '2013-04-01 - 2013-09-05' if they
picked 'Other') in the title of the report.
fix bug in date formatting
use the user specified date format for date fields
new users are at encryption level 2
Improve efficiency of categories resource by selecting all transactions in one go, rather than using separate queries for each iteration over categories.
Fix bugs in turnOnEncryption / turnOffEncryption
Remove unused mappers
fix potential NPE bug by using the cryptoutil wrapper
Improve efficiency in DataUpdater.updateBalances()
Remove from_balance and to_balance from scheduledsplits table (balances do not make sense for scheduled transactions). Fixed mapper to no longer update the removed columns
Use (readonly) caching in certain mappers
Fix NPE in crypto
Deleted some unused model objects
Upgrade moss restlet + crypto
Greatly improve the performance of Category.getAmount(), especially for large date ranges. Instead of selecting an entry for each category / each date, we select all entries for the requested date range and insert them into a map for lookup, and pass the map do recursive calls. This reduces the number of DB accesses from
Updated queries, reports, and resources to properly account for encrypted amounts. Fixed some bugs from the last commit (most notably that the data updater was not properly encrypting the new amounts on splits).
Converting to encryption level 2: all amounts are now also encrypted. In this commit, we have adjusted the DB schema (varchars instead of numbers), changed the model objects, encrypt on CU and decrypt on D (of CRUD) operations, and implemented the upgrade from level 1 to 2. Next step will be to change queries to account for the encrypted values (notably, no summing of amounts in the DB anymore).
Figured out how to properly do AJAX changes to a tree node; budget updates are now handled without the need to refresh the entire tree.
More work on the Budget tree panel updates. I could not get this working using a purely AJAX approach (the saves are fine, but I can't seem to reload a single node in the tree properly). Reverting some of the previous changes, so that it works... I may still look at this in the future, if I can figure out how to load a single node in the tree.
WIP to improve the budget editing to use AJAX techniques.
Work in progress of improving the budget editing to use AJAX techniques.
Rather than reloading the entire tree, I should be reloading an
individual node as it is edited / committed. I started this by adding
support for it in the backend; the GUI is not there yet (and is actually
currently broken completely).
Added the ability for users to completely delete their own account.
Merge branch 'master' of ssh://digitalcave.ca/~/java/ca.digitalcave.buddilive
Do not include a default development config.properties file, but include a sample instead. Update application to display helpful error message if the config file could not be loaded.
Fix bug in data updater which does not decrypt scheduled transaction messages prior to showing them
Updated sample config file DB url
Fixed bug in scheduled transactions, where editing a scheduled transaction would result in it being re-applied from the beginning.
Remove moss.crypto and moss.restlet project links from eclipse
Remove the mybatis re-generation of sql session factory every time (for debugging purposes)
Updated logging.properties to show access logs but not SQL logs
Added delete transaction confirmation dialog
Don't show all the SQL debug logs
Changed the unique constraints on sources, transactions, and scheduled transaction UUIDs to include the user_id column as well. This way, users can save their data from one account and restore it to another without triggering a unique constraint violation.
Added a logging.properties file
UI and validation fixes to scheduled transactions
Change -> to → in i18n
Code cleanup (js)
Add a warning message when loading a transaction which references deleted accounts / categories
Fix bug where a category could be set such that it was its own grandpa
Removed obsolete TODO
Updated TODOs based on current status
Fixed all the i18n TODOs
Code cleanup
Use browser locale when user is not logged in
Adding checks if existing transactions are changing
Adding more i18n
Change i18n key for date validation
Upgraded rest let version
If the date is before 1 year ago or more than 1 month in the future, confirm that the user actually wants that date. (Rationale for this being that dates far away from today may be a typo).
Stream (sort of) the Description store. (The 'sort of' is because we need to post process the list of transactions into a description:transaction map, containing only the most recent of each transaction. This is done in memory, but we no longer construct another in-memory JSONObject containing all the values again).
Fix the DataUpdater.updateBalances() function to be much more efficient. Remove unused DB access from Transactions mapper.
Fixed bug when loading a previous entry's amount when selecting a previous description
Fix bug in constraints checker which still encrypted values using the old v0 method rather than v1
Lazy load the decrypted encryption keys, rather than doing it every time in the validator.
Upgrade to lastest moss libs
Refactoring isEncryptedValue() to be in ConstraintsChecker, as it is only used there.
Change the store URLs for public resources so that anyone can access them.
Tons of somewhat related changes, to crypto and such: -Add user column 'encryption_version' to keep track of which version of encryption a given user is currently on. -Encryption version 1: Convert to key based encryption rather than password based encryption. When a user enables encryption, there is a new random secret key generated. This key is encoded, and encrypted using their login password. On each request, the key is decrypted and used for decrypting data. (Compare this to previous, version 0, encryption, where there was a random 128 bit password created for the user, which was encrypted with their own password. Security-wise this should be about the same, but creating a single key per request should speed things up). Added a DataUpdater method to convert from version 0 to 1. -Added a buddi_system table, with a cookie encryption key in it. On first execution, a random key is generated and stored. This key is used to encrypt cookies. On subsequent executions, the stored key is used (so server restarts will not invalidate cookies). Delete the entry in the table to invalidate all cookies (for instance if a DB breach was detected). Because of this, config property verifier.encryptionKey is no longer needed and has been deleted from sample config file.
Fix routing bug introduced with new cookie auth system
Fix bug with currency field when entering values greater than 999,999.99
cleanup
Fix bug with backup URL
Fixed another bug where the arguments for encryption were backwards
Fix to NPE
Fixed bug which destroyed encryption key when encrypting data
Re-added new user messages
Removed invalid favicon
Working on changing password. Found a bug where enabling encryption (possibly after first disabling it) corrupts the encryption key.
Preference changes: -Added 'change password' option on the menu -Added 'store email' preference in the preferences editor
Sort accounts and categories on (decrypted) name, rather than letting DB sort on encrypted name
More work on the Income and Expenses by Category report. -Added rowexpander with transaction data to show how the totals were calculated -Added totals row with sums for actual, budget, and difference.
WIP to get Income and Expenses by Category report to work. Starting to get there...
Switch to Sencha-hosted HTTPS CDN
Code clean up for some tabs
Change from loading scheduled transactions at index load to having an hourly executing job which checks for new scheduled transactions, and updates accordingly. This also gives us the option of having the user send their date, rather than relying on server time.
Upgrade crypto and restlet libs
Partial conversion from built in CryptoUtil to Moss Crypto. Some of the CryptoUtil stubs are still present, but they just delegate to Moss Crypto. Eventually we may add a Moss Crypto object to the application.
WIP on new moss.restlet
Use system date instead of user's date. This is wrong, but is better than throwing NPEs. We need to figure out a way to get the user's actual date… perhaps execute the data updater in an ajax call?
Write the raw value ('amountNumber') to the splits as well as the formatted number string. This lets us properly fill in the editor.
Upgrading moss.restlet
Starting to integrate the /login router (WIP as we develop the moss.restlet implementation providing it)
Added password reset
Working on converting auth to use the moss.restlet framework; getting closer, but still a WIP.
Upgrade jars
Deleting all local ext / sencha touch components; use CDN from now on
Fixed bug which had broken pie charts
(Temporarily) force the 'forceAll' flag when updating transaction balances, to ensure proper addition is performed.
WIP to fix totals bug. So far I have added a sql statement which clears all transaction balances after a given date; now I need to call it appropriately.
Fixed a bug where an unencrypted empty string would cause a crypto exception when decrypting
Fixed bug where deleting a transaction would not refresh the list properly
Updated build script to use proper names; removed standalone build option for the time being, as it is not used or working
We now have a real SSL cert! Yay!
Since Sencha is taking too long, we are now just serving our own CDN content from Apache… eventually we can change to Sencha's CDN if it ever adds 4.2.1.
Adjust C3P0 validation settings
Fixed bug when there was an error sending email (copy / paste bug)
Merge branch 'master' of ssh://digitalcave.ca/~/java/ca.digitalcave.buddi.live
Hopefully fix a bug when reloading transaction lists sometimes.
Added links to HTTPS version (self signed)
Fix bug which prevented new user signup after moving to proxy pass system
Added an icon for the copy budget entries button, and improved the i18n description for this button.
Use HTTPS for the CDN. Once the CDN is updated to include 4.2.1 we need to update this again.
Updated to EXT 4.2.1. It appears that this is not yet on the CDN, so we can't deploy until it is there (or, alternatively, we re-add serving EXT from the web app itself, although I would prefer not to do this for efficiency reasons).
Added 'copy budget amount from last period' button
Working on the income / expenses by category. This is going to be a bar graph, with two series, showing actual and budgeted values. (Possibly add another series for difference? Or make it stacked bar, and have positive / negative differences as third and fourth series, in different colours?) Anyway, this is not completed yet, although the actual / budgeted values are now obtained from the DB (albeit in a very inefficient manner…)
Removed POST handler for pie report
Check for localhost in both IPV4 and IPV6 when adding new users
WIP for Income and Expenses by Category report
fixing indent
Shutdown the datasource on application restart
Added some TODOs for sanity checks
Updated tooltips for delete / clear / record transactions. Clear now deselects transaction too.
Changed 'record transaction' shortcut to Ctrl+Enter to prevent spurious entries.
Added a 'getting started' message.
Automatically displays on startup when there are no accounts, and can be accessed via System -> Getting Started. Describes how to import data from Buddi Desktop. Links to a tutorial, which is not yet populated.
Added a 'doc' folder in WebContent, and moved encryption and terms and conditions there.
Added a 'doc' folder in WebContent, and moved encryption and terms and conditions there.
Added logic to try to figure out the right source assignments when loading from descriptions.
The objective here is twofold:
1) ensure that one of the sources for splits is always the selected source
2) if we override a source to set it to this one, that we preferentially try to keep budget categories (and lesser, credit accounts).
This should allow people to load previous transactions by decription and not need to override the source assignment manually, even if there was a previous source last time.
Added a buddilive-test target, for deploying against my test server
Scheduled Transaction message was not being encrypted, decrypted, or loaded properly.
WIP change to automated Ext Date format generation from SimpleDateFormat string.
Fix to DB mapper after date schema change
Handle server error by showing message instead of just silently failing
Remove paging and filtering parameters from being sent to the server for stores which don't do paging.
Re-add 'enter' key listeners on certain fields in transaction editor
Move common transaction reloading code (clear, refresh, load) into a single method on transaction list itself, rather than duplicating it everywhere.
Changed DB schema to rename transactions.date and entries.date (date is a reserved word in most DBs), and to add indices to certain fields (mostly the dates on transactions, since we order by them frequently)
Increased transaction store page size to 250. This seems to be a happy medium given reasonable bandwidth plus DB access speed
Refresh the from / to combo boxes when adding / deleting / updating accounts and categories
Slight cleanup in transaction list
Fix to the issue where scrollbars are not reset when changing sources
Enabled streaming of transactions.json, and re-added paging (this time hopefully in such a way that it works)
Don't hide search bar if encrypted
stripe rows in accounts / budgets
Don't allow enter (to record) on to / from fields
Increased DB connection timeout limit so that large restores can happen without error
Re-added a required i18n key
Merge branch 'master' of ssh://digitalcave.ca/~/java/ca.digitalcave.buddi.live
Adding terms and conditions and encryption information pages
Cleaning up translations
Updated login page warning to be 'beta' instead of alpha, in preparation for public beta announcement
Implemented 'updateScheduledSplit' mapper, required for enabling / disabling encryption
Set the filename of the backup download to include today's date
Translated various untranslated strings in transaction / splits
Cleaning up the formatting code, and fixing some formatting bugs
Added translations from Buddi desktop (not yet modified)
Merge branch 'master' of ssh://digitalcave.ca/~/java/ca.digitalcave.buddi.live
Decrypt pie chart label
Added legend to charts
Added scheduled transactions to backup.json packet
UI improvements for transaction entry
-Associate a source (the selected account) with an
editor panel. This allows us to auto fill the other
transaction if we select one of them
-Improved filtering on from / to combos
Description can now be searched anywhere, not just at the beginning of the line
Bit of cleanup and i18n, and getting ready for usability tweaks on combo boxes
Code cleanup in indexresource
Removing more timezone code
Strip the challenge response out of the headers once we are authenticated, so user names do not get logged
Show currency codes, not localized symbols, in the currency selection list. Eventually we will show the localized names, but that will have to wait until we upgrade server to Java 7
Pass user's date through to the index page, so that scheduled transactions are relative to their date / timezone
Tweaks to GenericStoreBackedComboBox, allowing extending classes better options to override.
Added missing semicolon
Fixed bug where hitting 'no' on the delete confirmation didn't work.
Added support for restoring from a file upload.
Fixed bug on delete button enabling on transaction list
Changed all amount fields in the DB from 14,2 to 16,4
This allows us to support currencies other than those with 2 fractional
digits, as well as giving people more room to play with inflated
currencies where 16 digits is not unheard of.
Deleting timezone, show_cleared, show_reconcied from the DB & classes
We are going to use the browser time to calcualte time zones, and
will not support reconciliation or clear checks for a while (at least).
Keep the schema clean!
Show error message on invalid login, and add mask while the invalid login timeout is waiting.
Hopefully fixed the Mybatis problems mapping datetimezones...
Correctly pass through the currency and timezone to account creation
Added comment to change currency names later
Use JVM 6 method for currency name rather than JVM 7
Prevent anyone other than localhost to POST to users.
POSTint to users resource is the backdoor to add a user account for
testing / development. We don't want real servers to have this back
door. Eventually we will remove this resource completely, but it is
useful for now.
Fixed report SQL on Postgres
Many usability enhancements and GUI polishing changes
Fixed numerous minor bugs, including double-firing of record event
for transaction editor, improved handling of transaction editor, and
improved focus / selection on many controls when entering
transactions. Also added help text (self documenting fields) for
account creation and preferences.
Share a single instance of description store over the entire application, and reload the values on submit.
Complete re-work on locale and currency settings. We now use ISO codes, and support just about every locale / currency combination in the world. Users can override their locale's date format string if desired (and eventually may be able to override currency symbol, currency symbol position, decimal / thousands separator, etc). We also record time zone (will be used for scheduled transactions to ensure the transactions trigger on the right days).
WIP for locale changes. We are hoping to get Java to do more of the heavy lifting for locales, date formatting, etc. Some things are working now, others are not… more work is needed.
Now we use the Sencha CDN instead of hosting EXT JS directly ourselves. This should make the web server much more happy...
Decrypt backup before sending
Upgraded Restlet to 2.0.15, and added support for Jackson (we will probably start using Jackson for backup, and possibly some of the other larger operations such as transactions.json)
Removed untested IE warning message at login (since IE is working properly now, from what I can tell)
Added GUI support for backup / restore. Backup implemented and working; restore is a NOP for now.
Fixed bug in IE where budget trees was not working.
Finished the interval dialog. When launching a report, you now can select the interval for that report to run under, including 'Other' where you are prompted for a start / end date.
Fix bug with budget tree style
All date fields now default the proper selected date format
More WIP on reports; most notably working on getting the intervals for a given report. Trying to make this easy to reuse for all reports as needed.
-Added a new widget, 'currencyfield'. This extends number, has i18n support for different comma / decimal formats, and parses currency symbol. -Working on the two pie charts
Split the currency symbol field into two in the DB: symbol and position (before / after). This cleans up the code a bit and allows for _ in currency symbol text.
Two pie graphs are almost working.
Getting ready for reports; added a dummy report with associated controllers, menus, icons, etc. Now just to add the actual report logic.
Fixed scheduled transaction bug; update balances on index refresh now as well (we should verify whether this is required).
Disabled transaction list moving / hiding columns
Finished scheduled transaction editor. Something is still wrong with the data updater which applies the changes at login; working on that...
Added a last login column to see when the account has last been used. This can be useful for cleaning out old accounts if needed.
More work on scheduled transactions. The list is now populated, and you can delete them from the list. When loading them to modify, most fields are now opened in the editor.
Don't allow tab to stop at the buttons in the self documenting field
Improve transaction editor layout when used in the scheduled transaction dialog
Include transaction validation for enabling the OK button when adding / editing a scheduled transaction
Fallback to Cookie storage if local storage is not available in the browser.
More work on scheduled transaction editor GUI
Cleaning up view a little, and adding help buttons to account / category editors
Added a delay on invalid usernames / passwords to slow down brute force attempts on the system. We gate the number of concurrent invalid username / password attempts so that you can't just parallelize the attack.
Some (very little) work on scheduled transaction editor.
Fixed typo when loading the verifier encryption key.
Added a new 'self documenting field': a field group which includes a help button that can be used to explain what the field is used for.
Use 24 hour format for build timestamp
Some usability work on the budget window. Hopefully this makes things a bit more intuitive than it was previously...
Fixed sql session leak
Decrypt category names in parent resource
Some minor initial work on Scheduled Transaction editor GUI. Very preliminary… this is going to be a big job.
Removed spurious line breaks from 'Currency format' label
Added note about browser compatibility
Added DB support for scheduled transactions. We can now import from Buddi desktop, and (in theory) the schedules are updated at login (the code was lifted from Buddi desktop, so in theory it works, but it is as yet untested).
Added build date / version to the login screen
Fixed trailing comma in tree store
Added built date / git version to login screen
Updated postgres docs
Added a config option 'verifier.encryptionKey' to allow you to set the cookie / nonce encryption key. Defaults to a random string (probably more secure, but will not persist over a server restart).
Working on build script and reorganizing resources to go in WEB-INF as appropriate.
Moved master.xml to WEB-INF folder
Added PostgreSQL install instructions
Styling login page, and added alpha-quality warning banner
A bit more work on build script
Focus on username for login screen
Started work on making a deployable .war file.
Use formatted dates for printing transaction dates
Default date format to ISO
Fixed some minor bugs preventing PostgreSQL from being used as the primary DB
UI improvements to Viewport actions (add / edit / delete account and category). Added i18n descriptions for deletion, and mask on long running operations.
Mark delete buttons as undelete account / category when the source is already deleted.
Coalesce nulls into zeros for the start balance / current balance for accounts (this especially affects new accounts with no transactions).
Account type was not being properly decrypted.
Usability improvements to account / category editors: start with name selected, and enable OK button on keypress as well as blur. Enter saves.
Mask transaction editor on record
Don't force update all balances on preference modification
Use user date format in transaction editor
Added the ability to type into the combo box to select records. Still not perfect (some bugs with selecting records), but much better than nothing.
Fixed encryption bug which corrupted the number field
Search now applies when you hit enter or on field blur. No more search button.
Focus on the password field when you change encryption preferences
Reverted from paged store to loading everything at once. The packet sizes are small enough (especially when gzipped), and with EXT 4.2 the render speed is just about instantaneous, even with multiple thousand transactions. Paging caused various display bugs...
We now declare that the encrypted version of null is null.
Focus on date field when store loads
Ads for non-premium users
Updated transactions to be more consistent in the sorting. We now sort by two levels only: date, and split ID. This deviates from Buddi desktop, but I think it makes a bit more sense from a UI point of view.
Added a 'force' attribute to the balance calculator to recalculate all balances at certain times. For normal transaction adding, this is not needed; for new accounts / categories / preference changes, we do it (it is probably not required, but it is nice).
-Enabled transaction search (only for non-encrypted users) -Changed transaction list to paged mode -Moved transaction list to descending order -Moved transaction editor to the top of the list
Hide deleted categories
Decrypt account types in the sources combo boxes
Numerous crypto bug fixes, UI improvements, and general goodness.
Just about a complete implementation of encryption. In the process I reworked the cryptoutil to support various iterations and salt lengths for the encryption, changed to base 64 encoding rather than base 16, simplified the API, etc.
I think the formatting colours are now consistent with Buddi Desktop...
Added support for writing user preferences.
Added boolean type handler to transactions 'deleted' flag
Added user preferences to DB, mappers, model objects, resources, and GUI.
Changing some i18n keys
Merge branch 'master' of ssh://digitalcave.ca/~/java/ca.digitalcave.buddi.live
Missing semicolon
Improved formatting. Working on the UI feel for entering transactions; still not smooth enough for prime time.
A bit of code cleanup
Upgraded to EXT JS 4.2, and added the buffered renderer plugin to the transaction list, which greatly speeds up rendering on large datasets.
Changed budget periods to accordion layout
header = false doesnt do what I want it to do anyway...
-Cleaning up GUI by reducing the toolbar count -Changing some of the icons
Mark certain select statements as "resultOrdered='true'", which is supposeed to help reduce memory when reading from the DB.
Upgraded to Mybatis 3.2.1
Implemented nice looking transaction list renderer. It gets slow with many (multiple hundreds, approaching thousands) of transactions; I need to either look into paging, or find some way to speed things up
A bit of a different approach for transaction display listing… not sure if I will go this route or not yet.
commit changes before reverting
SourceComboBox (now split into FromComboBox and ToComboBox) now use named stores. This reduces EXT chatter by only loading the store once, rather than every time it is refreshed.
Changed MassUpdater to BalanceUpdater
Specify 1900-01-01 as a date
Started making custom renderer for transactions. Very basic at this point.
Store running balances in splits, with the current total in account. This is updated whenever an insert / update occurs.
A bit more work on creating new accounts.
Added clickable descriptions for store email, encrypt data, and terms and conditions on the create account page
Started work on recording balances at the split level. This should reduce the calculations required for most GUI operations.
Moved transaction editor to the bottom of the screen again
Added test files to help debug account balance addition problems
-Send mail via the create user resource, so that we can confirm the email address is valid. -Renamed the resources/gui package to resources/buddilive (the matching mobile version will be resources/buddilive-m). -Found bug in the selectAccountTypes mapper, where the transactions are being counted multiple times and messing up the totals. I am unsure of how to resolve this without using CTEs or full outer joins (neither of which Derby supports, apparently).
-Changed login from being form based to being AJAX / JSON POST based. -Added @MapKey to a sources.xml mapper to generate a map of categories (used for looking up parents).
Splitting up login page into multiple .js files for better maintenance
More backup / restore sample scripts
Further development on login / create account, and added logout button
Working on i18n, and starting to get the 'create users' logic working.
Use safe decode in application error handler
All the architecture is ready for i18n. Started some of the translations. It is now just a matter of copying over the selected i18n keys from Buddi desktop and adding free marker lookups for the given keys.
Editable combo box for descriptions
removed need for ids from backup / restore; we now use UUIDs, and can handle partial imports where some items already exist.
removed need for ids from backup / restore; we now use UUIDs, and can handle partial imports where some items already exist.
Working on Description combo. Auto load values when selected.
I think the actual calculation SQL code is working now...
Use
Entering a blank value for budget amount gets parsed as a zero.
Properly handle transaction updates
Fixed incorrect on delete cascade declarations in liquibase config
Working further on selectCategories SQL to include the total amounts.
Fixed bug on CategoryPeriod model object
Using fixed point decimal (DECIMAL(12,2)) for the DB, and BigDecimal for Java. This avoids all the decimal point conversion bugs when I try to handle it myself, and still handles decimals properly (unlike float data types).
Improved alignment on split editor by adding a spacer to replace the add button.
Started to show amount in budget. Not completely working yet, but getting close. Also there are some problems with decimal point inconsistencies (we need to ensure that everything between the server and web client uses 123.45 format, while internally everything else uses 12345 format.)
WIP i18n framework for GUI
Fixed some minor bugs with budget entries.
Entries can now be added to the GUI, and a persisted + reloaded.
Slight refactoring of freemarker resource to work with HTML and JS files
Sample of how to commit budget edits
Renamed project to buddi live rather than buddi web. Adjusted project names and packages accordingly.
Added sencha touch framework. Added freemarker filtering on all content not otherwise matched by a router rule (will allow for i18n server-side). Added budget cell editor.
Proved concept of category periods in the DB
WIP getting entries to work. Stealing some period logic from original Buddi.
More GUI restrictions on creating / modifying budget categories
A whole lot of work; mostly working on budget category GUI, but some GUI work was done with accounts and transactions as well.
Starting work on budget categories. Added entries table to the DB. Started work on the GUI layout as well.
More GUI work
Transaction loading and inserting is working. Updates are not quite there yet.
Loading transactions, including splits, is pretty much working now.
Started to add support for displaying transactions
You can now add / remove split lines from the editor
Changed transaction editor icons
Arrow on splits
Cleanup and refactoring GUI
WIP on transaction editor
Accont Insert, Update, Delete, Undelete are all working server-side. The GUI is mostly working, although there are a few quirks still.
The delete update worked, but reading back from the DB needs to go through a handler
You can now add accounts from the GUI; editing and deleting are starting to come along, but are not quite there yet.
Account balances should be working now
Fixed mapping for transactions / splits hierarchy
Removed BD layer, in favour of constraints checking utility class. This gives me more control over DB transaction scope, etc. Transactions live at the resource level; there can be multiple mapper calls in a given transaction.
Renamed (incorrectly named) DAO to BusinessDelegates
Transaction adding is now working. Reading is not quite there (the collections mapping from transaction to split seems to be messing up MyBatis for some reason...)
Starting EXT GUI for the main application.
Added DAOs to handle checks for invalid situations which could not be caught in Derby check constraints. Starting to work on transactions / splits.
Increased security of password / user hashes, plus added strong crypto for encrypted strings
Moved the to / from JSON logic to the model objects; simplified the data resources
Tighter referential integrity of the DB; adding model objects for SQL select / insert; users GET / POST and sources GET / POST now work.
Sources can now be submitted via HTTP POST. Further refactoring of DB tables.
Changing DB table structure a bit...
identifiers are now hashed in the DB; more work on DB schema; started work on get / post sources
Working on DB layer. Defining tables, writing mappers, etc.
Adding ext js 4 framework
More work on verifier
WIP on verifier
Fixed .gitignore to not remove the db package from src folder
Database schema migration is running from liquibase, and is ready to start table design.
Added instructions on creating Derby DB for standalone operation
Working on test DB
Initial config