UPDATE : Development to Master

With two emergency and unplanned merges, now another planned one for a future release.
This is not considered a PR due to the changes we have done. We will continue RC development once this larger branch is merged into master. This PR will include one last major change before we continue on to 1.0.0, and a much overdue one: See https://github.com/MPOS/php-mpos/issues/2111 for details, but it will require manual steps by the pool operator to properly migrate their setup!

We also are considering to add timezone support too. It needs some testing before we merge into development.

# Changelog

* [MOVED] All include and template files are not inside the webroot anymore
* [ADDED] Custom date format for all templates
* [ADDED] Dynamic salting for user passwords and pins
* [ADDED] Last 5 blocks found to dashboard including audio ping on new blocks
* [ADDED] Admin Dashboard: online version check against MPOS version on Github Master Branch
* [ADDED] x11 algorithm support via coin_x11 class - thanks @raistlinthewiz 
* [ADDED] scryptn algorithm support via coin_scryptn class - thanks @raistlinthewiz 
* [ADDED] Set MOTD Style
* [ADDED] Set if Users can hide MOTD
* [ADDED] Orphan percentage on blocks overview
* [ADDED] Register with valid Coin Address
* [ADDED] Setting to prevent add/edit Worker with no valid Coin Address in Account Settings
* [REMOVED] getdashboarddata API since it's not being used anymore and can cause high load
* [UPDATE] jQuery to version 2.1.1
* [UPDATE] jQuery QRCode to version 0.7.0
* [UPDATE] jQuery Cookie to version 1.4.1
* [UPDATE] Font Awesome to version 4.1
* [UPDATE] Bootstrap to version 3.1.1
* [UPDATE] Resized motd window to textarea in Admin Settings panel
* [FIX] Mail Templates check for HTTP(s) now
* [FIX] HTTP links in mail notifications for some mail clients - thanks @daygle 
* [FIX] News updated popup box
* [FIX] Responsive Tables in User Transactions
* [FIX] IDLE Worker Detection on fast block generating pools
* [FIX] Mark orphan transactions as archived too
* [FIX] Do not create multiple transactions for case sensitive worker account names
* [FIX] Disable Earnings Page when TX Summaries are disabled
* [CLEANUP] Worker class now using coin class definitions (hashrate calculations)
* [CLEANUP] Getting started guide for scrypt/sha256d, thanks @daygle 
* [CHANGE] Display pools estimated time per block on dashboard, not network time
* [CHANGE] Use coin class to calculate block times for both network and pool

# Worker Account Case Insensitive

You may have noticed the above fix. Don't be alarmed, this is just a cosmetically thing. People that had their workers setup wrong (e.g. TheSerapher.1 and theserapher.2) would cause MPOS to treat them as different users IF we had to fetch shares from the archive. Payouts in the end would still be the proper sum of both users expected payout, so nothing was overpaid. It just looked really strange in the transaction list for that user.

# Move Internal Data

As mentioned we have now moved all internal files in `include` and `templates` from the webroot into the main application folder. This will allow vhost configurations to point at the public folder without the risk of exposing any internal data to the public. I am happy this was done before the 1.0.0 release! It's one last major change that will require pool operator intervention:

* Update your checkout with `git pull`
* Move your config file: `mv public/include/config/global.inc.php include/config/`
* Run the upgrade script as usual
* Backup or remove the old `public/include` and `public/templates` folders

Once completed, your checkout should now run with internal data moved outside the DocumentRoot. If you are still having issues ensure that:

* Any PHP security modules restricting access allow access to these files
* Any HTTP module tightening security is aware that these folders are OK

How to make sure things work properly with your specific setup, please consult your online documentation.

# Date Format

You can now define your own date format that will be used throughout MPOS. This is done in the admin panel, system settings and follows the PHP strfrtime standard: http://de1.php.net/strftime

# Dynamic Salting

We have added a 'pinch of pepper' to our hashing system. Each password will not only be salted with the SALT configured but we add a pepper to it that we store inside the DB. At the same time, we allowed future changes to the hashing system to be implemented much easier now by introducing the HASH_VERSION definition. It makes switching to a newer algorithm a hole lot easier.

For all old users, the old hashing still applies and works. New accounts will be created with the latest HASH_VERSION available by default. That includes password and pin hashes. For existing accounts, a password and pin reset will also move those hashed secrets to the new format.

# Dashboard Audio Feedback

MPOS Dashboard now has the last 5 blocks found listed and updated with Ajax. An audio file is now played as soon as a new block is found! I have not added a mute button (yet) since I felt it's not needed. Either mute the system or simply close the page to get rid of it ;-)

# Online Version Check

We have added a simple check to compare the locally installed MPOS version with the online available one. It's setup to check by default against the master branch. This is configured via a configuration option pointing to the raw `versions.inc.php` file at the repository. You can change the branch, if need be, by setting a custom `version_url`.