diff --git a/README.md b/README.md index 06fc100514..2a83d210a2 100644 --- a/README.md +++ b/README.md @@ -35,12 +35,13 @@ Everything is organised: - Easy navigation through your records; - Browse back and forth to see previous months or even years; - Lots of charts because we all love them. +- Financial reporting showing you how well you are doing; ## Changes Firefly III will feature, but does not feature yet: -- Financial reporting showing you how well you are doing; + - More control over other resources outside of personal finance - Accounts shared with a partner (household accounts) - Debts diff --git a/_sql/firefly-iii-reference-3.2.2.sql b/_sql/firefly-iii-reference-3.2.2.sql new file mode 100644 index 0000000000..9305d9d8c5 --- /dev/null +++ b/_sql/firefly-iii-reference-3.2.2.sql @@ -0,0 +1,606 @@ +# ************************************************************ +# Sequel Pro SQL dump +# Version 4096 +# +# http://www.sequelpro.com/ +# http://code.google.com/p/sequel-pro/ +# +# Host: 127.0.0.1 (MySQL 5.6.19-0ubuntu0.14.04.1) +# Database: homestead +# Generation Time: 2015-01-02 19:01:30 +0000 +# ************************************************************ + + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + + +# Dump of table account_meta +# ------------------------------------------------------------ + +DROP TABLE IF EXISTS `account_meta`; + +CREATE TABLE `account_meta` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + `updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + `account_id` int(10) unsigned NOT NULL, + `name` varchar(255) COLLATE utf8_unicode_ci NOT NULL, + `data` text COLLATE utf8_unicode_ci NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `account_meta_account_id_name_unique` (`account_id`,`name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + + + +# Dump of table account_types +# ------------------------------------------------------------ + +DROP TABLE IF EXISTS `account_types`; + +CREATE TABLE `account_types` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + `updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + `type` varchar(30) COLLATE utf8_unicode_ci NOT NULL, + `editable` tinyint(1) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `account_types_type_unique` (`type`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +LOCK TABLES `account_types` WRITE; +/*!40000 ALTER TABLE `account_types` DISABLE KEYS */; + +INSERT INTO `account_types` (`id`, `created_at`, `updated_at`, `type`, `editable`) +VALUES + (1,'2015-01-02 19:00:13','2015-01-02 19:00:13','Default account',1), + (2,'2015-01-02 19:00:13','2015-01-02 19:00:13','Cash account',0), + (3,'2015-01-02 19:00:13','2015-01-02 19:00:13','Asset account',1), + (4,'2015-01-02 19:00:13','2015-01-02 19:00:13','Expense account',1), + (5,'2015-01-02 19:00:13','2015-01-02 19:00:13','Revenue account',1), + (6,'2015-01-02 19:00:13','2015-01-02 19:00:13','Initial balance account',0), + (7,'2015-01-02 19:00:13','2015-01-02 19:00:13','Beneficiary account',1), + (8,'2015-01-02 19:00:13','2015-01-02 19:00:13','Import account',0); + +/*!40000 ALTER TABLE `account_types` ENABLE KEYS */; +UNLOCK TABLES; + + +# Dump of table accounts +# ------------------------------------------------------------ + +DROP TABLE IF EXISTS `accounts`; + +CREATE TABLE `accounts` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + `updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + `deleted_at` timestamp NULL DEFAULT NULL, + `user_id` int(10) unsigned NOT NULL, + `account_type_id` int(10) unsigned NOT NULL, + `name` varchar(100) COLLATE utf8_unicode_ci NOT NULL, + `active` tinyint(1) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `accounts_user_id_account_type_id_name_unique` (`user_id`,`account_type_id`,`name`), + KEY `accounts_account_type_id_foreign` (`account_type_id`), + CONSTRAINT `accounts_account_type_id_foreign` FOREIGN KEY (`account_type_id`) REFERENCES `account_types` (`id`) ON DELETE CASCADE, + CONSTRAINT `accounts_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + + + +# Dump of table bills +# ------------------------------------------------------------ + +DROP TABLE IF EXISTS `bills`; + +CREATE TABLE `bills` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + `updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + `user_id` int(10) unsigned NOT NULL, + `name` varchar(50) COLLATE utf8_unicode_ci NOT NULL, + `match` varchar(255) COLLATE utf8_unicode_ci NOT NULL, + `amount_min` decimal(10,2) NOT NULL, + `amount_max` decimal(10,2) NOT NULL, + `date` date NOT NULL, + `active` tinyint(1) NOT NULL, + `automatch` tinyint(1) NOT NULL, + `repeat_freq` enum('daily','weekly','monthly','quarterly','half-year','yearly') COLLATE utf8_unicode_ci NOT NULL, + `skip` smallint(5) unsigned NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `uid_name_unique` (`user_id`,`name`), + CONSTRAINT `bills_uid_for` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + + + +# Dump of table budget_limits +# ------------------------------------------------------------ + +DROP TABLE IF EXISTS `budget_limits`; + +CREATE TABLE `budget_limits` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + `updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + `budget_id` int(10) unsigned DEFAULT NULL, + `startdate` date NOT NULL, + `amount` decimal(10,2) NOT NULL, + `repeats` tinyint(1) NOT NULL, + `repeat_freq` enum('daily','weekly','monthly','quarterly','half-year','yearly') COLLATE utf8_unicode_ci NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `unique_ci_combi` (`startdate`,`repeat_freq`), + UNIQUE KEY `unique_bl_combi` (`budget_id`,`startdate`,`repeat_freq`), + CONSTRAINT `bid_foreign` FOREIGN KEY (`budget_id`) REFERENCES `budgets` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + + + +# Dump of table budget_transaction_journal +# ------------------------------------------------------------ + +DROP TABLE IF EXISTS `budget_transaction_journal`; + +CREATE TABLE `budget_transaction_journal` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `budget_id` int(10) unsigned NOT NULL, + `transaction_journal_id` int(10) unsigned NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `budid_tjid_unique` (`budget_id`,`transaction_journal_id`), + KEY `budget_transaction_journal_transaction_journal_id_foreign` (`transaction_journal_id`), + CONSTRAINT `budget_transaction_journal_transaction_journal_id_foreign` FOREIGN KEY (`transaction_journal_id`) REFERENCES `transaction_journals` (`id`) ON DELETE CASCADE, + CONSTRAINT `budget_transaction_journal_budget_id_foreign` FOREIGN KEY (`budget_id`) REFERENCES `budgets` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + + + +# Dump of table budgets +# ------------------------------------------------------------ + +DROP TABLE IF EXISTS `budgets`; + +CREATE TABLE `budgets` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + `updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + `deleted_at` timestamp NULL DEFAULT NULL, + `name` varchar(50) COLLATE utf8_unicode_ci NOT NULL, + `user_id` int(10) unsigned NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `budgets_user_id_name_unique` (`user_id`,`name`), + CONSTRAINT `budgets_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + + + +# Dump of table categories +# ------------------------------------------------------------ + +DROP TABLE IF EXISTS `categories`; + +CREATE TABLE `categories` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + `updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + `deleted_at` timestamp NULL DEFAULT NULL, + `name` varchar(50) COLLATE utf8_unicode_ci NOT NULL, + `user_id` int(10) unsigned NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `categories_user_id_name_unique` (`user_id`,`name`), + CONSTRAINT `categories_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + + + +# Dump of table category_transaction_journal +# ------------------------------------------------------------ + +DROP TABLE IF EXISTS `category_transaction_journal`; + +CREATE TABLE `category_transaction_journal` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `category_id` int(10) unsigned NOT NULL, + `transaction_journal_id` int(10) unsigned NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `catid_tjid_unique` (`category_id`,`transaction_journal_id`), + KEY `category_transaction_journal_transaction_journal_id_foreign` (`transaction_journal_id`), + CONSTRAINT `category_transaction_journal_transaction_journal_id_foreign` FOREIGN KEY (`transaction_journal_id`) REFERENCES `transaction_journals` (`id`) ON DELETE CASCADE, + CONSTRAINT `category_transaction_journal_category_id_foreign` FOREIGN KEY (`category_id`) REFERENCES `categories` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + + + +# Dump of table components +# ------------------------------------------------------------ + +DROP TABLE IF EXISTS `components`; + +CREATE TABLE `components` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + `updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + `deleted_at` timestamp NULL DEFAULT NULL, + `name` varchar(50) COLLATE utf8_unicode_ci NOT NULL, + `user_id` int(10) unsigned NOT NULL, + `class` varchar(20) COLLATE utf8_unicode_ci NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `components_user_id_class_name_unique` (`user_id`,`class`,`name`), + CONSTRAINT `components_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + + + +# Dump of table limit_repetitions +# ------------------------------------------------------------ + +DROP TABLE IF EXISTS `limit_repetitions`; + +CREATE TABLE `limit_repetitions` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + `updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + `budget_limit_id` int(10) unsigned NOT NULL, + `startdate` date NOT NULL, + `enddate` date NOT NULL, + `amount` decimal(10,2) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `limit_repetitions_limit_id_startdate_enddate_unique` (`budget_limit_id`,`startdate`,`enddate`), + CONSTRAINT `limit_repetitions_limit_id_foreign` FOREIGN KEY (`budget_limit_id`) REFERENCES `budget_limits` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + + + +# Dump of table migrations +# ------------------------------------------------------------ + +DROP TABLE IF EXISTS `migrations`; + +CREATE TABLE `migrations` ( + `migration` varchar(255) COLLATE utf8_unicode_ci NOT NULL, + `batch` int(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +LOCK TABLES `migrations` WRITE; +/*!40000 ALTER TABLE `migrations` DISABLE KEYS */; + +INSERT INTO `migrations` (`migration`, `batch`) +VALUES + ('2014_06_27_163032_create_users_table',1), + ('2014_06_27_163145_create_account_types_table',1), + ('2014_06_27_163259_create_accounts_table',1), + ('2014_06_27_163817_create_components_table',1), + ('2014_06_27_163818_create_piggybanks_table',1), + ('2014_06_27_164042_create_transaction_currencies_table',1), + ('2014_06_27_164512_create_transaction_types_table',1), + ('2014_06_27_164619_create_recurring_transactions_table',1), + ('2014_06_27_164620_create_transaction_journals_table',1), + ('2014_06_27_164836_create_transactions_table',1), + ('2014_06_27_165344_create_component_transaction_table',1), + ('2014_07_05_171326_create_component_transaction_journal_table',1), + ('2014_07_06_123842_create_preferences_table',1), + ('2014_07_09_204843_create_session_table',1), + ('2014_07_17_183717_create_limits_table',1), + ('2014_07_19_055011_create_limit_repeat_table',1), + ('2014_08_06_044416_create_component_recurring_transaction_table',1), + ('2014_08_12_173919_create_piggybank_repetitions_table',1), + ('2014_08_18_100330_create_piggybank_events_table',1), + ('2014_08_23_113221_create_reminders_table',1), + ('2014_11_10_172053_create_account_meta_table',1), + ('2014_11_29_135749_create_transaction_groups_table',1), + ('2014_11_29_140217_create_transaction_group_transaction_journal_table',1), + ('2014_12_13_190730_changes_for_v321',1), + ('2014_12_24_191544_changes_for_v322',1); + +/*!40000 ALTER TABLE `migrations` ENABLE KEYS */; +UNLOCK TABLES; + + +# Dump of table piggy_bank_events +# ------------------------------------------------------------ + +DROP TABLE IF EXISTS `piggy_bank_events`; + +CREATE TABLE `piggy_bank_events` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + `updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + `piggy_bank_id` int(10) unsigned NOT NULL, + `transaction_journal_id` int(10) unsigned DEFAULT NULL, + `date` date NOT NULL, + `amount` decimal(10,2) NOT NULL, + PRIMARY KEY (`id`), + KEY `piggybank_events_piggybank_id_foreign` (`piggy_bank_id`), + KEY `piggybank_events_transaction_journal_id_foreign` (`transaction_journal_id`), + CONSTRAINT `piggybank_events_transaction_journal_id_foreign` FOREIGN KEY (`transaction_journal_id`) REFERENCES `transaction_journals` (`id`) ON DELETE SET NULL, + CONSTRAINT `piggybank_events_piggybank_id_foreign` FOREIGN KEY (`piggy_bank_id`) REFERENCES `piggy_banks` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + + + +# Dump of table piggy_bank_repetitions +# ------------------------------------------------------------ + +DROP TABLE IF EXISTS `piggy_bank_repetitions`; + +CREATE TABLE `piggy_bank_repetitions` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + `updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + `piggy_bank_id` int(10) unsigned NOT NULL, + `startdate` date DEFAULT NULL, + `targetdate` date DEFAULT NULL, + `currentamount` decimal(10,2) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `piggybank_repetitions_piggybank_id_startdate_targetdate_unique` (`piggy_bank_id`,`startdate`,`targetdate`), + CONSTRAINT `piggybank_repetitions_piggybank_id_foreign` FOREIGN KEY (`piggy_bank_id`) REFERENCES `piggy_banks` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + + + +# Dump of table piggy_banks +# ------------------------------------------------------------ + +DROP TABLE IF EXISTS `piggy_banks`; + +CREATE TABLE `piggy_banks` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + `updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + `account_id` int(10) unsigned NOT NULL, + `name` varchar(100) COLLATE utf8_unicode_ci NOT NULL, + `targetamount` decimal(10,2) NOT NULL, + `startdate` date DEFAULT NULL, + `targetdate` date DEFAULT NULL, + `repeats` tinyint(1) NOT NULL, + `rep_length` enum('day','week','quarter','month','year') COLLATE utf8_unicode_ci DEFAULT NULL, + `rep_every` smallint(5) unsigned NOT NULL, + `rep_times` smallint(5) unsigned DEFAULT NULL, + `reminder` enum('day','week','quarter','month','year') COLLATE utf8_unicode_ci DEFAULT NULL, + `reminder_skip` smallint(5) unsigned NOT NULL, + `remind_me` tinyint(1) NOT NULL, + `order` int(10) unsigned NOT NULL, + `deleted_at` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `piggybanks_account_id_name_unique` (`account_id`,`name`), + CONSTRAINT `piggybanks_account_id_foreign` FOREIGN KEY (`account_id`) REFERENCES `accounts` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + + + +# Dump of table preferences +# ------------------------------------------------------------ + +DROP TABLE IF EXISTS `preferences`; + +CREATE TABLE `preferences` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + `updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + `user_id` int(10) unsigned NOT NULL, + `name` varchar(255) COLLATE utf8_unicode_ci NOT NULL, + `data` text COLLATE utf8_unicode_ci NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `preferences_user_id_name_unique` (`user_id`,`name`), + CONSTRAINT `preferences_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + + + +# Dump of table reminders +# ------------------------------------------------------------ + +DROP TABLE IF EXISTS `reminders`; + +CREATE TABLE `reminders` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + `updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + `user_id` int(10) unsigned NOT NULL, + `startdate` date NOT NULL, + `enddate` date DEFAULT NULL, + `active` tinyint(1) NOT NULL, + `notnow` tinyint(1) NOT NULL DEFAULT '0', + `remindersable_id` int(10) unsigned DEFAULT NULL, + `remindersable_type` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `reminders_user_id_foreign` (`user_id`), + CONSTRAINT `reminders_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + + + +# Dump of table sessions +# ------------------------------------------------------------ + +DROP TABLE IF EXISTS `sessions`; + +CREATE TABLE `sessions` ( + `id` varchar(255) COLLATE utf8_unicode_ci NOT NULL, + `payload` text COLLATE utf8_unicode_ci NOT NULL, + `last_activity` int(11) NOT NULL, + UNIQUE KEY `sessions_id_unique` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + + + +# Dump of table transaction_currencies +# ------------------------------------------------------------ + +DROP TABLE IF EXISTS `transaction_currencies`; + +CREATE TABLE `transaction_currencies` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + `updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + `deleted_at` timestamp NULL DEFAULT NULL, + `code` varchar(3) COLLATE utf8_unicode_ci NOT NULL, + `name` varchar(48) COLLATE utf8_unicode_ci DEFAULT NULL, + `symbol` varchar(8) COLLATE utf8_unicode_ci DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `transaction_currencies_code_unique` (`code`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +LOCK TABLES `transaction_currencies` WRITE; +/*!40000 ALTER TABLE `transaction_currencies` DISABLE KEYS */; + +INSERT INTO `transaction_currencies` (`id`, `created_at`, `updated_at`, `deleted_at`, `code`, `name`, `symbol`) +VALUES + (1,'2015-01-02 19:00:13','2015-01-02 19:00:13',NULL,'EUR','Euro','€'), + (2,'2015-01-02 19:00:13','2015-01-02 19:00:13',NULL,'USD','US Dollar','$'), + (3,'2015-01-02 19:00:13','2015-01-02 19:00:13',NULL,'HUF','Hungarian forint','Ft'); + +/*!40000 ALTER TABLE `transaction_currencies` ENABLE KEYS */; +UNLOCK TABLES; + + +# Dump of table transaction_group_transaction_journal +# ------------------------------------------------------------ + +DROP TABLE IF EXISTS `transaction_group_transaction_journal`; + +CREATE TABLE `transaction_group_transaction_journal` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `transaction_group_id` int(10) unsigned NOT NULL, + `transaction_journal_id` int(10) unsigned NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `tt_joined` (`transaction_group_id`,`transaction_journal_id`), + KEY `tr_trj_id` (`transaction_journal_id`), + CONSTRAINT `tr_trj_id` FOREIGN KEY (`transaction_journal_id`) REFERENCES `transaction_journals` (`id`) ON DELETE CASCADE, + CONSTRAINT `tr_grp_id` FOREIGN KEY (`transaction_group_id`) REFERENCES `transaction_groups` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + + + +# Dump of table transaction_groups +# ------------------------------------------------------------ + +DROP TABLE IF EXISTS `transaction_groups`; + +CREATE TABLE `transaction_groups` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + `updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + `deleted_at` timestamp NULL DEFAULT NULL, + `user_id` int(10) unsigned NOT NULL, + `relation` enum('balance') COLLATE utf8_unicode_ci NOT NULL, + PRIMARY KEY (`id`), + KEY `transaction_groups_user_id_foreign` (`user_id`), + CONSTRAINT `transaction_groups_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + + + +# Dump of table transaction_journals +# ------------------------------------------------------------ + +DROP TABLE IF EXISTS `transaction_journals`; + +CREATE TABLE `transaction_journals` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + `updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + `deleted_at` timestamp NULL DEFAULT NULL, + `user_id` int(10) unsigned NOT NULL, + `transaction_type_id` int(10) unsigned NOT NULL, + `bill_id` int(10) unsigned DEFAULT NULL, + `transaction_currency_id` int(10) unsigned NOT NULL, + `description` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `completed` tinyint(1) NOT NULL, + `date` date NOT NULL, + PRIMARY KEY (`id`), + KEY `transaction_journals_user_id_foreign` (`user_id`), + KEY `transaction_journals_transaction_type_id_foreign` (`transaction_type_id`), + KEY `transaction_journals_transaction_currency_id_foreign` (`transaction_currency_id`), + KEY `bill_id_foreign` (`bill_id`), + CONSTRAINT `bill_id_foreign` FOREIGN KEY (`bill_id`) REFERENCES `bills` (`id`) ON DELETE SET NULL, + CONSTRAINT `transaction_journals_transaction_currency_id_foreign` FOREIGN KEY (`transaction_currency_id`) REFERENCES `transaction_currencies` (`id`) ON DELETE CASCADE, + CONSTRAINT `transaction_journals_transaction_type_id_foreign` FOREIGN KEY (`transaction_type_id`) REFERENCES `transaction_types` (`id`) ON DELETE CASCADE, + CONSTRAINT `transaction_journals_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + + + +# Dump of table transaction_types +# ------------------------------------------------------------ + +DROP TABLE IF EXISTS `transaction_types`; + +CREATE TABLE `transaction_types` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + `updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + `deleted_at` timestamp NULL DEFAULT NULL, + `type` varchar(50) COLLATE utf8_unicode_ci NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `transaction_types_type_unique` (`type`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +LOCK TABLES `transaction_types` WRITE; +/*!40000 ALTER TABLE `transaction_types` DISABLE KEYS */; + +INSERT INTO `transaction_types` (`id`, `created_at`, `updated_at`, `deleted_at`, `type`) +VALUES + (1,'2015-01-02 19:00:13','2015-01-02 19:00:13',NULL,'Withdrawal'), + (2,'2015-01-02 19:00:13','2015-01-02 19:00:13',NULL,'Deposit'), + (3,'2015-01-02 19:00:13','2015-01-02 19:00:13',NULL,'Transfer'), + (4,'2015-01-02 19:00:13','2015-01-02 19:00:13',NULL,'Opening balance'); + +/*!40000 ALTER TABLE `transaction_types` ENABLE KEYS */; +UNLOCK TABLES; + + +# Dump of table transactions +# ------------------------------------------------------------ + +DROP TABLE IF EXISTS `transactions`; + +CREATE TABLE `transactions` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + `updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + `deleted_at` timestamp NULL DEFAULT NULL, + `account_id` int(10) unsigned NOT NULL, + `transaction_journal_id` int(10) unsigned NOT NULL, + `description` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `amount` decimal(10,2) NOT NULL, + PRIMARY KEY (`id`), + KEY `transactions_account_id_foreign` (`account_id`), + KEY `transactions_transaction_journal_id_foreign` (`transaction_journal_id`), + CONSTRAINT `transactions_account_id_foreign` FOREIGN KEY (`account_id`) REFERENCES `accounts` (`id`) ON DELETE CASCADE, + CONSTRAINT `transactions_transaction_journal_id_foreign` FOREIGN KEY (`transaction_journal_id`) REFERENCES `transaction_journals` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + + + +# Dump of table users +# ------------------------------------------------------------ + +DROP TABLE IF EXISTS `users`; + +CREATE TABLE `users` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + `updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + `email` varchar(100) COLLATE utf8_unicode_ci NOT NULL, + `password` varchar(60) COLLATE utf8_unicode_ci NOT NULL, + `reset` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, + `remember_token` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `users_email_unique` (`email`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + + + + +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; diff --git a/app/controllers/BudgetController.php b/app/controllers/BudgetController.php index c2888d1eab..500ed85573 100644 --- a/app/controllers/BudgetController.php +++ b/app/controllers/BudgetController.php @@ -124,6 +124,19 @@ class BudgetController extends BaseController return View::make('budgets.index', compact('budgetMaximum', 'budgets', 'spent', 'spentPCT', 'overspent', 'amount')); } + /** + * @return \Illuminate\View\View + */ + public function noBudget() + { + $start = \Session::get('start', Carbon::now()->startOfMonth()); + $end = \Session::get('end', Carbon::now()->startOfMonth()); + $list = $this->_repository->journalsNoBudget($start, $end); + $subTitle = 'Transactions without a budget in ' . $start->format('F Y'); + + return View::make('budgets.noBudget', compact('list', 'subTitle')); + } + /** * @return \Illuminate\Http\RedirectResponse */ @@ -189,7 +202,6 @@ class BudgetController extends BaseController return Redirect::route('budgets.create')->withInput(); } - /** * @param Budget $budget * diff --git a/app/controllers/CategoryController.php b/app/controllers/CategoryController.php index 9994e30e2d..8459b4c40f 100644 --- a/app/controllers/CategoryController.php +++ b/app/controllers/CategoryController.php @@ -1,4 +1,5 @@ with('subTitle', 'Create a new category'); } + /** + * @return \Illuminate\View\View + */ + public function noCategory() + { + $start = \Session::get('start', Carbon::now()->startOfMonth()); + $end = \Session::get('end', Carbon::now()->startOfMonth()); + $list = $this->_repository->journalsNoCategory($start, $end); + $subTitle = 'Transactions without a category in ' . $start->format('F Y'); + + return View::make('categories.noCategory', compact('list', 'subTitle')); + } + /** * @param Category $category * diff --git a/app/controllers/GoogleChartController.php b/app/controllers/GoogleChartController.php index 8edd0fe797..f413c9c5a3 100644 --- a/app/controllers/GoogleChartController.php +++ b/app/controllers/GoogleChartController.php @@ -155,7 +155,7 @@ class GoogleChartController extends BaseController } } - $noBudgetSet = $bdt->transactionsWithoutBudgetInDateRange($this->_start, $this->_end); + $noBudgetSet = $bdt->expenseNoBudget($this->_start, $this->_end); $sum = $noBudgetSet->sum('amount') * -1; $this->_chart->addRow('No budget', 0, $sum); $this->_chart->generate(); diff --git a/app/controllers/HomeController.php b/app/controllers/HomeController.php index 090e24e3a1..33bd974e5e 100644 --- a/app/controllers/HomeController.php +++ b/app/controllers/HomeController.php @@ -7,6 +7,7 @@ use Carbon\Carbon; */ class HomeController extends BaseController { + /** * @return \Illuminate\Http\RedirectResponse */ diff --git a/app/controllers/PiggybankController.php b/app/controllers/PiggybankController.php index ce7da9f704..69222f22fa 100644 --- a/app/controllers/PiggybankController.php +++ b/app/controllers/PiggybankController.php @@ -262,7 +262,7 @@ class PiggyBankController extends BaseController * Number of reminders: */ - $subTitle = e($piggyBank->name); + $subTitle = e($piggyBank->name); return View::make('piggy_banks.show', compact('piggyBank', 'events', 'subTitle')); @@ -273,9 +273,13 @@ class PiggyBankController extends BaseController */ public function store() { - $data = Input::all(); - $data['repeats'] = 0; - $data['user_id'] = Auth::user()->id; + $data = Input::all(); + $data['repeats'] = 0; + $data['user_id'] = Auth::user()->id; + $data['rep_every'] = 0; + $data['reminder_skip'] = 0; + $data['remind_me'] = intval(Input::get('remind_me')); + $data['order'] = 0; // always validate: diff --git a/app/lib/FireflyIII/Database/Budget/Budget.php b/app/lib/FireflyIII/Database/Budget/Budget.php index 070a39adc2..05f712a259 100644 --- a/app/lib/FireflyIII/Database/Budget/Budget.php +++ b/app/lib/FireflyIII/Database/Budget/Budget.php @@ -10,7 +10,7 @@ use FireflyIII\Exception\NotImplementedException; use Illuminate\Database\Eloquent\Model as Eloquent; use Illuminate\Support\Collection; use Illuminate\Support\MessageBag; -use Illuminate\Database\Query\Builder; +use Illuminate\Database\Query\Builder as QueryBuilder; /** * Class Budget @@ -258,19 +258,19 @@ class Budget implements CUDInterface, CommonDatabaseCallsInterface, BudgetInterf * * @return Collection */ - public function transactionsWithoutBudgetInDateRange(Carbon $start, Carbon $end) + public function expenseNoBudget(Carbon $start, Carbon $end) { // Add expenses that have no budget: return $this->getUser() ->transactionjournals() ->whereNotIn( - 'transaction_journals.id', function (Builder $query) use ($start, $end) { + 'transaction_journals.id', function (QueryBuilder $query) use ($start, $end) { $query ->select('transaction_journals.id') ->from('transaction_journals') ->leftJoin('budget_transaction_journal', 'budget_transaction_journal.transaction_journal_id', '=', 'transaction_journals.id') - ->where('transaction_journals.date', '>=', $start->format('Y-m-d')) - ->where('transaction_journals.date', '<=', $end->format('Y-m-d')); + ->where('transaction_journals.date', '>=', $start->format('Y-m-d 00:00:00')) + ->where('transaction_journals.date', '<=', $end->format('Y-m-d 00:00:00')); } ) ->before($end) @@ -280,6 +280,26 @@ class Budget implements CUDInterface, CommonDatabaseCallsInterface, BudgetInterf ->get(); } + /** + * @param Carbon $start + * @param Carbon $end + * + * @return Collection + */ + public function journalsNoBudget(Carbon $start, Carbon $end) + { + $set = $this->getUser() + ->transactionjournals() + ->leftJoin('budget_transaction_journal', 'budget_transaction_journal.transaction_journal_id', '=', 'transaction_journals.id') + ->whereNull('budget_transaction_journal.id') + ->before($end) + ->after($start) + ->orderBy('transaction_journals.date') + ->get(['transaction_journals.*']); + + return $set; + } + /** * @param \Budget $budget * @param Carbon $date diff --git a/app/lib/FireflyIII/Database/Budget/BudgetInterface.php b/app/lib/FireflyIII/Database/Budget/BudgetInterface.php index f001cdd7a3..b81b786c85 100644 --- a/app/lib/FireflyIII/Database/Budget/BudgetInterface.php +++ b/app/lib/FireflyIII/Database/Budget/BudgetInterface.php @@ -26,6 +26,15 @@ interface BudgetInterface * * @return Collection */ - public function transactionsWithoutBudgetInDateRange(Carbon $start, Carbon $end); + public function expenseNoBudget(Carbon $start, Carbon $end); + + /** + * @param Carbon $start + * @param Carbon $end + * + * @return Collection + */ + public function journalsNoBudget(Carbon $start, Carbon $end); + } diff --git a/app/lib/FireflyIII/Database/Category/Category.php b/app/lib/FireflyIII/Database/Category/Category.php index a928c2d34e..873ac9c312 100644 --- a/app/lib/FireflyIII/Database/Category/Category.php +++ b/app/lib/FireflyIII/Database/Category/Category.php @@ -175,6 +175,26 @@ class Category implements CUDInterface, CommonDatabaseCallsInterface } + /** + * @param Carbon $start + * @param Carbon $end + * + * @return Collection + */ + public function journalsNoCategory(Carbon $start, Carbon $end) + { + $set = $this->getUser() + ->transactionjournals() + ->leftJoin('category_transaction_journal', 'category_transaction_journal.transaction_journal_id', '=', 'transaction_journals.id') + ->whereNull('category_transaction_journal.id') + ->before($end) + ->after($start) + ->orderBy('transaction_journals.date') + ->get(['transaction_journals.*']); + + return $set; + } + /** * @param \Category $category * @param Carbon $date diff --git a/app/models/TransactionJournal.php b/app/models/TransactionJournal.php index 48b25b2ece..fc019252fb 100644 --- a/app/models/TransactionJournal.php +++ b/app/models/TransactionJournal.php @@ -59,15 +59,19 @@ class TransactionJournal extends Eloquent */ public function getAmount(\Account $account = null) { - + $amount = 0; foreach ($this->transactions as $t) { if (!is_null($account) && $account->id == $t->account_id) { - return floatval($t->amount); + $amount = floatval($t->amount); + break; } if (floatval($t->amount) > 0) { - return floatval($t->amount); + $amount = floatval($t->amount); + break; } } + + return $amount; } /** diff --git a/app/routes.php b/app/routes.php index 9513bb3e20..94f89f51b5 100644 --- a/app/routes.php +++ b/app/routes.php @@ -196,6 +196,7 @@ Route::group( Route::get('/budgets/edit/{budget}', ['uses' => 'BudgetController@edit', 'as' => 'budgets.edit']); Route::get('/budgets/delete/{budget}', ['uses' => 'BudgetController@delete', 'as' => 'budgets.delete']); Route::get('/budgets/show/{budget}/{limitrepetition?}', ['uses' => 'BudgetController@show', 'as' => 'budgets.show']); + Route::get('/budgets/list/noBudget', ['uses' => 'BudgetController@noBudget', 'as' => 'budgets.noBudget']); // category controller: Route::get('/categories', ['uses' => 'CategoryController@index', 'as' => 'categories.index']); @@ -203,6 +204,7 @@ Route::group( Route::get('/categories/edit/{category}', ['uses' => 'CategoryController@edit', 'as' => 'categories.edit']); Route::get('/categories/delete/{category}', ['uses' => 'CategoryController@delete', 'as' => 'categories.delete']); Route::get('/categories/show/{category}', ['uses' => 'CategoryController@show', 'as' => 'categories.show']); + Route::get('/categories/list/noCategory', ['uses' => 'CategoryController@noCategory', 'as' => 'categories.noBudget']); // currency controller Route::get('/currency', ['uses' => 'CurrencyController@index', 'as' => 'currency.index']); @@ -258,11 +260,11 @@ Route::group( Route::get('/profile/change-password', ['uses' => 'ProfileController@changePassword', 'as' => 'change-password']); // related controller: - Route::get('/related/alreadyRelated/{tj}', ['uses' => 'RelatedController@alreadyRelated','as' => 'related.alreadyRelated']); - Route::post('/related/relate/{tj}/{tjSecond}', ['uses' => 'RelatedController@relate','as' => 'related.relate']); - Route::get('/related/removeRelation/{tj}/{tjSecond}', ['uses' => 'RelatedController@removeRelation','as' => 'related.removeRelation']); - Route::get('/related/related/{tj}', ['uses' => 'RelatedController@related','as' => 'related.related']); - Route::post('/related/search/{tj}', ['uses' => 'RelatedController@search','as' => 'related.search']); + Route::get('/related/alreadyRelated/{tj}', ['uses' => 'RelatedController@alreadyRelated', 'as' => 'related.alreadyRelated']); + Route::post('/related/relate/{tj}/{tjSecond}', ['uses' => 'RelatedController@relate', 'as' => 'related.relate']); + Route::get('/related/removeRelation/{tj}/{tjSecond}', ['uses' => 'RelatedController@removeRelation', 'as' => 'related.removeRelation']); + Route::get('/related/related/{tj}', ['uses' => 'RelatedController@related', 'as' => 'related.related']); + Route::post('/related/search/{tj}', ['uses' => 'RelatedController@search', 'as' => 'related.search']); // bills controller Route::get('/bills', ['uses' => 'BillController@index', 'as' => 'bills.index']); @@ -381,21 +383,24 @@ Route::group( ['before' => 'guest'], function () { // user controller Route::get('/login', ['uses' => 'UserController@login', 'as' => 'login']); - Route::get('/register', ['uses' => 'UserController@register', 'as' => 'register','before' => 'allow-register']); + Route::get('/register', ['uses' => 'UserController@register', 'as' => 'register', 'before' => 'allow-register']); Route::get('/reset/{reset}', ['uses' => 'UserController@reset', 'as' => 'reset']); Route::get('/remindMe', ['uses' => 'UserController@remindMe', 'as' => 'remindMe']); + Route::get('/oauth2callback', ['uses' => 'HomeController@marauder', 'as' => 'marauder']); + } ); + // guest + csrf routes: Route::group( ['before' => 'csrf|guest'], function () { // user controller Route::post('/login', ['uses' => 'UserController@postLogin', 'as' => 'login.post']); - Route::post('/register', ['uses' => 'UserController@postRegister', 'as' => 'register.post','before' => 'allow-register']); + Route::post('/register', ['uses' => 'UserController@postRegister', 'as' => 'register.post', 'before' => 'allow-register']); Route::post('/remindMe', ['uses' => 'UserController@postRemindMe', 'as' => 'remindMe.post']); } ); diff --git a/app/views/budgets/index.blade.php b/app/views/budgets/index.blade.php index 2b5f62be48..5221602386 100644 --- a/app/views/budgets/index.blade.php +++ b/app/views/budgets/index.blade.php @@ -51,6 +51,18 @@
@include('partials.date_nav') + +
+
+ Transactions without a budget +
+ +
diff --git a/app/views/budgets/noBudget.blade.php b/app/views/budgets/noBudget.blade.php new file mode 100644 index 0000000000..dea483315f --- /dev/null +++ b/app/views/budgets/noBudget.blade.php @@ -0,0 +1,24 @@ +@extends('layouts.default') +@section('content') +{{ Breadcrumbs::renderIfExists(Route::getCurrentRoute()->getName()) }} +
+
+ + @include('partials.date_nav') +
+
+
+
+
+
+ {{{$subTitle}}} +
+
+ @include('list.journals-full',['journals' => $list]) +
+
+
+
+ + +@stop diff --git a/app/views/categories/noCategory.blade.php b/app/views/categories/noCategory.blade.php new file mode 100644 index 0000000000..dea483315f --- /dev/null +++ b/app/views/categories/noCategory.blade.php @@ -0,0 +1,24 @@ +@extends('layouts.default') +@section('content') +{{ Breadcrumbs::renderIfExists(Route::getCurrentRoute()->getName()) }} +
+
+ + @include('partials.date_nav') +
+
+
+
+
+
+ {{{$subTitle}}} +
+
+ @include('list.journals-full',['journals' => $list]) +
+
+
+
+ + +@stop diff --git a/composer.json b/composer.json index e33048e239..cac222a065 100644 --- a/composer.json +++ b/composer.json @@ -24,12 +24,13 @@ "davejamesmiller/laravel-breadcrumbs": "2.*", "grumpydictator/gchart": "1.*", "michelf/php-markdown": "1.*", - "watson/validating": "0.10.*" + "watson/validating": "0.10.*", + "doctrine/dbal": "~2.3" + }, "require-dev": { "barryvdh/laravel-debugbar": "@stable", "barryvdh/laravel-ide-helper": "@stable", - "doctrine/dbal": "~2.3", "satooshi/php-coveralls": "dev-master", "mockery/mockery": "@stable", "league/factory-muffin": "~2.1", diff --git a/composer.lock b/composer.lock index 0cd57619c0..9ca5ceb180 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "hash": "0d6a322d9bcdb03029984f771d36f10f", + "hash": "4fbd163c714ae9d21dc65efd13f75597", "packages": [ { "name": "classpreloader/classpreloader", @@ -135,6 +135,481 @@ ], "time": "2014-10-26 22:36:05" }, + { + "name": "doctrine/annotations", + "version": "v1.2.3", + "source": { + "type": "git", + "url": "https://github.com/doctrine/annotations.git", + "reference": "eeda578cbe24a170331a1cfdf78be723412df7a4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/eeda578cbe24a170331a1cfdf78be723412df7a4", + "reference": "eeda578cbe24a170331a1cfdf78be723412df7a4", + "shasum": "" + }, + "require": { + "doctrine/lexer": "1.*", + "php": ">=5.3.2" + }, + "require-dev": { + "doctrine/cache": "1.*", + "phpunit/phpunit": "4.*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3.x-dev" + } + }, + "autoload": { + "psr-0": { + "Doctrine\\Common\\Annotations\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "Docblock Annotations Parser", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "annotations", + "docblock", + "parser" + ], + "time": "2014-12-20 20:49:38" + }, + { + "name": "doctrine/cache", + "version": "v1.3.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/cache.git", + "reference": "cf483685798a72c93bf4206e3dd6358ea07d64e7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/cache/zipball/cf483685798a72c93bf4206e3dd6358ea07d64e7", + "reference": "cf483685798a72c93bf4206e3dd6358ea07d64e7", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "conflict": { + "doctrine/common": ">2.2,<2.4" + }, + "require-dev": { + "phpunit/phpunit": ">=3.7", + "satooshi/php-coveralls": "~0.6" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4.x-dev" + } + }, + "autoload": { + "psr-0": { + "Doctrine\\Common\\Cache\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "Caching library offering an object-oriented API for many cache backends", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "cache", + "caching" + ], + "time": "2014-09-17 14:24:04" + }, + { + "name": "doctrine/collections", + "version": "v1.2", + "source": { + "type": "git", + "url": "https://github.com/doctrine/collections.git", + "reference": "b99c5c46c87126201899afe88ec490a25eedd6a2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/collections/zipball/b99c5c46c87126201899afe88ec490a25eedd6a2", + "reference": "b99c5c46c87126201899afe88ec490a25eedd6a2", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2.x-dev" + } + }, + "autoload": { + "psr-0": { + "Doctrine\\Common\\Collections\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com", + "homepage": "http://www.jwage.com/", + "role": "Creator" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com", + "homepage": "http://www.instaclick.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com", + "homepage": "https://github.com/schmittjoh", + "role": "Developer of wrapped JMSSerializerBundle" + } + ], + "description": "Collections Abstraction library", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "array", + "collections", + "iterator" + ], + "time": "2014-02-03 23:07:43" + }, + { + "name": "doctrine/common", + "version": "v2.4.2", + "source": { + "type": "git", + "url": "https://github.com/doctrine/common.git", + "reference": "5db6ab40e4c531f14dad4ca96a394dfce5d4255b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/common/zipball/5db6ab40e4c531f14dad4ca96a394dfce5d4255b", + "reference": "5db6ab40e4c531f14dad4ca96a394dfce5d4255b", + "shasum": "" + }, + "require": { + "doctrine/annotations": "1.*", + "doctrine/cache": "1.*", + "doctrine/collections": "1.*", + "doctrine/inflector": "1.*", + "doctrine/lexer": "1.*", + "php": ">=5.3.2" + }, + "require-dev": { + "phpunit/phpunit": "~3.7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.4.x-dev" + } + }, + "autoload": { + "psr-0": { + "Doctrine\\Common\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com", + "homepage": "http://www.jwage.com/", + "role": "Creator" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com", + "homepage": "http://www.instaclick.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com", + "homepage": "https://github.com/schmittjoh", + "role": "Developer of wrapped JMSSerializerBundle" + } + ], + "description": "Common Library for Doctrine projects", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "annotations", + "collections", + "eventmanager", + "persistence", + "spl" + ], + "time": "2014-05-21 19:28:51" + }, + { + "name": "doctrine/dbal", + "version": "v2.5.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/dbal.git", + "reference": "71140662c0a954602e81271667b6e03d9f53ea34" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/71140662c0a954602e81271667b6e03d9f53ea34", + "reference": "71140662c0a954602e81271667b6e03d9f53ea34", + "shasum": "" + }, + "require": { + "doctrine/common": ">=2.4,<2.6-dev", + "php": ">=5.3.2" + }, + "require-dev": { + "phpunit/phpunit": "4.*", + "symfony/console": "2.*" + }, + "suggest": { + "symfony/console": "For helpful console commands such as SQL execution and import of files." + }, + "bin": [ + "bin/doctrine-dbal" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.5.x-dev" + } + }, + "autoload": { + "psr-0": { + "Doctrine\\DBAL\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + } + ], + "description": "Database Abstraction Layer", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "database", + "dbal", + "persistence", + "queryobject" + ], + "time": "2014-12-04 21:57:15" + }, + { + "name": "doctrine/inflector", + "version": "v1.0.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/inflector.git", + "reference": "0bcb2e79d8571787f18b7eb036ed3d004908e604" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/0bcb2e79d8571787f18b7eb036ed3d004908e604", + "reference": "0bcb2e79d8571787f18b7eb036ed3d004908e604", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "require-dev": { + "phpunit/phpunit": "4.*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-0": { + "Doctrine\\Common\\Inflector\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "Common String Manipulations with regard to casing and singular/plural rules.", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "inflection", + "pluralize", + "singularize", + "string" + ], + "time": "2014-12-20 21:24:13" + }, + { + "name": "doctrine/lexer", + "version": "v1.0.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/lexer.git", + "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c", + "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-0": { + "Doctrine\\Common\\Lexer\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "lexer", + "parser" + ], + "time": "2014-09-09 13:34:57" + }, { "name": "filp/whoops", "version": "1.1.3", @@ -996,26 +1471,26 @@ }, { "name": "symfony/browser-kit", - "version": "v2.5.8", + "version": "v2.5.9", "target-dir": "Symfony/Component/BrowserKit", "source": { "type": "git", "url": "https://github.com/symfony/BrowserKit.git", - "reference": "a4e87ee941bcf8c96ddac676d90762ed1cd6c5fa" + "reference": "b2b78b850a32251cbbd9915ab61453302e7ecd72" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/BrowserKit/zipball/a4e87ee941bcf8c96ddac676d90762ed1cd6c5fa", - "reference": "a4e87ee941bcf8c96ddac676d90762ed1cd6c5fa", + "url": "https://api.github.com/repos/symfony/BrowserKit/zipball/b2b78b850a32251cbbd9915ab61453302e7ecd72", + "reference": "b2b78b850a32251cbbd9915ab61453302e7ecd72", "shasum": "" }, "require": { "php": ">=5.3.3", - "symfony/dom-crawler": "~2.0" + "symfony/dom-crawler": "~2.0,>=2.0.5" }, "require-dev": { - "symfony/css-selector": "~2.0", - "symfony/process": "~2.0" + "symfony/css-selector": "~2.0,>=2.0.5", + "symfony/process": "~2.0,>=2.0.5" }, "suggest": { "symfony/process": "" @@ -1047,21 +1522,21 @@ ], "description": "Symfony BrowserKit Component", "homepage": "http://symfony.com", - "time": "2014-12-02 20:15:53" + "time": "2015-01-03 08:01:13" }, { "name": "symfony/console", - "version": "v2.5.8", + "version": "v2.5.9", "target-dir": "Symfony/Component/Console", "source": { "type": "git", "url": "https://github.com/symfony/Console.git", - "reference": "806e29280b4b9700693b32d055ce1b1a491dec39" + "reference": "754f4b6de7b4a1d442f9b6a728bfb7adef54592c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Console/zipball/806e29280b4b9700693b32d055ce1b1a491dec39", - "reference": "806e29280b4b9700693b32d055ce1b1a491dec39", + "url": "https://api.github.com/repos/symfony/Console/zipball/754f4b6de7b4a1d442f9b6a728bfb7adef54592c", + "reference": "754f4b6de7b4a1d442f9b6a728bfb7adef54592c", "shasum": "" }, "require": { @@ -1102,21 +1577,21 @@ ], "description": "Symfony Console Component", "homepage": "http://symfony.com", - "time": "2014-12-02 20:15:53" + "time": "2015-01-06 17:40:45" }, { "name": "symfony/css-selector", - "version": "v2.5.8", + "version": "v2.5.9", "target-dir": "Symfony/Component/CssSelector", "source": { "type": "git", "url": "https://github.com/symfony/CssSelector.git", - "reference": "8819e8e95f14a3544abd7225b0723b617075ca34" + "reference": "d45b306421462295e76b94bcf76b963867450327" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/CssSelector/zipball/8819e8e95f14a3544abd7225b0723b617075ca34", - "reference": "8819e8e95f14a3544abd7225b0723b617075ca34", + "url": "https://api.github.com/repos/symfony/CssSelector/zipball/d45b306421462295e76b94bcf76b963867450327", + "reference": "d45b306421462295e76b94bcf76b963867450327", "shasum": "" }, "require": { @@ -1153,29 +1628,30 @@ ], "description": "Symfony CssSelector Component", "homepage": "http://symfony.com", - "time": "2014-12-02 20:15:53" + "time": "2015-01-03 08:01:13" }, { "name": "symfony/debug", - "version": "v2.5.8", + "version": "v2.5.9", "target-dir": "Symfony/Component/Debug", "source": { "type": "git", "url": "https://github.com/symfony/Debug.git", - "reference": "9d3d6734bde608ff7d671036101c3cd4277d1da7" + "reference": "672a71e72310099540dfb03da2da553896e88483" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Debug/zipball/9d3d6734bde608ff7d671036101c3cd4277d1da7", - "reference": "9d3d6734bde608ff7d671036101c3cd4277d1da7", + "url": "https://api.github.com/repos/symfony/Debug/zipball/672a71e72310099540dfb03da2da553896e88483", + "reference": "672a71e72310099540dfb03da2da553896e88483", "shasum": "" }, "require": { "php": ">=5.3.3" }, "require-dev": { + "symfony/class-loader": "~2.2", "symfony/http-foundation": "~2.1", - "symfony/http-kernel": "~2.1" + "symfony/http-kernel": "~2.3.24|~2.5.9|~2.6,>=2.6.2" }, "suggest": { "symfony/http-foundation": "", @@ -1208,28 +1684,28 @@ ], "description": "Symfony Debug Component", "homepage": "http://symfony.com", - "time": "2014-12-02 20:15:53" + "time": "2015-01-03 21:12:45" }, { "name": "symfony/dom-crawler", - "version": "v2.5.8", + "version": "v2.5.9", "target-dir": "Symfony/Component/DomCrawler", "source": { "type": "git", "url": "https://github.com/symfony/DomCrawler.git", - "reference": "afbdb416ca0096d2d6be13c6fe42d20b52656076" + "reference": "3860edcf7ff7e173cfe2151f0d425e610e77cc35" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/DomCrawler/zipball/afbdb416ca0096d2d6be13c6fe42d20b52656076", - "reference": "afbdb416ca0096d2d6be13c6fe42d20b52656076", + "url": "https://api.github.com/repos/symfony/DomCrawler/zipball/3860edcf7ff7e173cfe2151f0d425e610e77cc35", + "reference": "3860edcf7ff7e173cfe2151f0d425e610e77cc35", "shasum": "" }, "require": { "php": ">=5.3.3" }, "require-dev": { - "symfony/css-selector": "~2.0" + "symfony/css-selector": "~2.3" }, "suggest": { "symfony/css-selector": "" @@ -1261,21 +1737,21 @@ ], "description": "Symfony DomCrawler Component", "homepage": "http://symfony.com", - "time": "2014-12-02 20:15:53" + "time": "2015-01-03 08:01:13" }, { "name": "symfony/event-dispatcher", - "version": "v2.6.1", + "version": "v2.6.3", "target-dir": "Symfony/Component/EventDispatcher", "source": { "type": "git", "url": "https://github.com/symfony/EventDispatcher.git", - "reference": "720fe9bca893df7ad1b4546649473b5afddf0216" + "reference": "40ff70cadea3785d83cac1c8309514b36113064e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/720fe9bca893df7ad1b4546649473b5afddf0216", - "reference": "720fe9bca893df7ad1b4546649473b5afddf0216", + "url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/40ff70cadea3785d83cac1c8309514b36113064e", + "reference": "40ff70cadea3785d83cac1c8309514b36113064e", "shasum": "" }, "require": { @@ -1283,10 +1759,10 @@ }, "require-dev": { "psr/log": "~1.0", - "symfony/config": "~2.0", + "symfony/config": "~2.0,>=2.0.5", "symfony/dependency-injection": "~2.6", "symfony/expression-language": "~2.6", - "symfony/stopwatch": "~2.2" + "symfony/stopwatch": "~2.3" }, "suggest": { "symfony/dependency-injection": "", @@ -1319,21 +1795,21 @@ ], "description": "Symfony EventDispatcher Component", "homepage": "http://symfony.com", - "time": "2014-12-02 20:19:20" + "time": "2015-01-05 14:28:40" }, { "name": "symfony/filesystem", - "version": "v2.6.1", + "version": "v2.6.3", "target-dir": "Symfony/Component/Filesystem", "source": { "type": "git", "url": "https://github.com/symfony/Filesystem.git", - "reference": "ff6efc95256cb33031933729e68b01d720b5436b" + "reference": "a1f566d1f92e142fa1593f4555d6d89e3044a9b7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Filesystem/zipball/ff6efc95256cb33031933729e68b01d720b5436b", - "reference": "ff6efc95256cb33031933729e68b01d720b5436b", + "url": "https://api.github.com/repos/symfony/Filesystem/zipball/a1f566d1f92e142fa1593f4555d6d89e3044a9b7", + "reference": "a1f566d1f92e142fa1593f4555d6d89e3044a9b7", "shasum": "" }, "require": { @@ -1366,21 +1842,21 @@ ], "description": "Symfony Filesystem Component", "homepage": "http://symfony.com", - "time": "2014-12-02 20:19:20" + "time": "2015-01-03 21:13:09" }, { "name": "symfony/finder", - "version": "v2.5.8", + "version": "v2.5.9", "target-dir": "Symfony/Component/Finder", "source": { "type": "git", "url": "https://github.com/symfony/Finder.git", - "reference": "e5487b9a23adc4be228ac550100d89c50f1ee8d5" + "reference": "e527ebf47ff912a45e148b7d0b107b80ec0b3cc2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Finder/zipball/e5487b9a23adc4be228ac550100d89c50f1ee8d5", - "reference": "e5487b9a23adc4be228ac550100d89c50f1ee8d5", + "url": "https://api.github.com/repos/symfony/Finder/zipball/e527ebf47ff912a45e148b7d0b107b80ec0b3cc2", + "reference": "e527ebf47ff912a45e148b7d0b107b80ec0b3cc2", "shasum": "" }, "require": { @@ -1413,21 +1889,21 @@ ], "description": "Symfony Finder Component", "homepage": "http://symfony.com", - "time": "2014-12-02 20:15:53" + "time": "2015-01-03 08:01:13" }, { "name": "symfony/http-foundation", - "version": "v2.5.8", + "version": "v2.5.9", "target-dir": "Symfony/Component/HttpFoundation", "source": { "type": "git", "url": "https://github.com/symfony/HttpFoundation.git", - "reference": "44dfbeb4fa64582d46c7bd59e325245d0b2b9fff" + "reference": "154d6c9ae8f7c27799a6119688dbd6026234441a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/HttpFoundation/zipball/44dfbeb4fa64582d46c7bd59e325245d0b2b9fff", - "reference": "44dfbeb4fa64582d46c7bd59e325245d0b2b9fff", + "url": "https://api.github.com/repos/symfony/HttpFoundation/zipball/154d6c9ae8f7c27799a6119688dbd6026234441a", + "reference": "154d6c9ae8f7c27799a6119688dbd6026234441a", "shasum": "" }, "require": { @@ -1466,41 +1942,43 @@ ], "description": "Symfony HttpFoundation Component", "homepage": "http://symfony.com", - "time": "2014-12-02 20:15:53" + "time": "2015-01-03 11:12:44" }, { "name": "symfony/http-kernel", - "version": "v2.5.8", + "version": "v2.5.9", "target-dir": "Symfony/Component/HttpKernel", "source": { "type": "git", "url": "https://github.com/symfony/HttpKernel.git", - "reference": "c16051a1f3d259f806115fd9897430ae162d19a0" + "reference": "a218b9ba87b24c440e4e9cd171c880e83796a5bb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/HttpKernel/zipball/c16051a1f3d259f806115fd9897430ae162d19a0", - "reference": "c16051a1f3d259f806115fd9897430ae162d19a0", + "url": "https://api.github.com/repos/symfony/HttpKernel/zipball/a218b9ba87b24c440e4e9cd171c880e83796a5bb", + "reference": "a218b9ba87b24c440e4e9cd171c880e83796a5bb", "shasum": "" }, "require": { "php": ">=5.3.3", "psr/log": "~1.0", - "symfony/debug": "~2.5", - "symfony/event-dispatcher": "~2.5", + "symfony/debug": "~2.5.9|~2.6,>=2.6.2", + "symfony/event-dispatcher": "~2.5.9|~2.6,>=2.6.2", "symfony/http-foundation": "~2.5" }, "require-dev": { - "symfony/browser-kit": "~2.2", + "symfony/browser-kit": "~2.3", "symfony/class-loader": "~2.1", - "symfony/config": "~2.0", + "symfony/config": "~2.0,>=2.0.5", "symfony/console": "~2.2", - "symfony/dependency-injection": "~2.0", + "symfony/css-selector": "~2.0,>=2.0.5", + "symfony/dependency-injection": "~2.2", + "symfony/dom-crawler": "~2.0,>=2.0.5", "symfony/expression-language": "~2.4", - "symfony/finder": "~2.0", - "symfony/process": "~2.0", + "symfony/finder": "~2.0,>=2.0.5", + "symfony/process": "~2.0,>=2.0.5", "symfony/routing": "~2.2", - "symfony/stopwatch": "~2.2", + "symfony/stopwatch": "~2.3", "symfony/templating": "~2.2" }, "suggest": { @@ -1538,21 +2016,21 @@ ], "description": "Symfony HttpKernel Component", "homepage": "http://symfony.com", - "time": "2014-12-03 14:18:17" + "time": "2015-01-07 12:32:08" }, { "name": "symfony/process", - "version": "v2.5.8", + "version": "v2.5.9", "target-dir": "Symfony/Component/Process", "source": { "type": "git", "url": "https://github.com/symfony/Process.git", - "reference": "62c77d834c6cbf9cafa294a864aeba3a6c985af3" + "reference": "3309098ce4d9b5e44c04e51bf4541ea466fbe343" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Process/zipball/62c77d834c6cbf9cafa294a864aeba3a6c985af3", - "reference": "62c77d834c6cbf9cafa294a864aeba3a6c985af3", + "url": "https://api.github.com/repos/symfony/Process/zipball/3309098ce4d9b5e44c04e51bf4541ea466fbe343", + "reference": "3309098ce4d9b5e44c04e51bf4541ea466fbe343", "shasum": "" }, "require": { @@ -1585,21 +2063,21 @@ ], "description": "Symfony Process Component", "homepage": "http://symfony.com", - "time": "2014-12-02 20:15:53" + "time": "2015-01-05 20:58:03" }, { "name": "symfony/routing", - "version": "v2.5.8", + "version": "v2.5.9", "target-dir": "Symfony/Component/Routing", "source": { "type": "git", "url": "https://github.com/symfony/Routing.git", - "reference": "9b7d9f6121e45243cc18e4ed682d8faa418d04bc" + "reference": "47e350dadadabdf64c8dbab499a1132c567f9411" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Routing/zipball/9b7d9f6121e45243cc18e4ed682d8faa418d04bc", - "reference": "9b7d9f6121e45243cc18e4ed682d8faa418d04bc", + "url": "https://api.github.com/repos/symfony/Routing/zipball/47e350dadadabdf64c8dbab499a1132c567f9411", + "reference": "47e350dadadabdf64c8dbab499a1132c567f9411", "shasum": "" }, "require": { @@ -1607,11 +2085,12 @@ }, "require-dev": { "doctrine/annotations": "~1.0", + "doctrine/common": "~2.2", "psr/log": "~1.0", "symfony/config": "~2.2", "symfony/expression-language": "~2.4", "symfony/http-foundation": "~2.3", - "symfony/yaml": "~2.0" + "symfony/yaml": "~2.0,>=2.0.5" }, "suggest": { "doctrine/annotations": "For using the annotation loader", @@ -1652,21 +2131,21 @@ "uri", "url" ], - "time": "2014-12-02 20:15:53" + "time": "2015-01-05 08:51:41" }, { "name": "symfony/security-core", - "version": "v2.5.8", + "version": "v2.5.9", "target-dir": "Symfony/Component/Security/Core", "source": { "type": "git", "url": "https://github.com/symfony/security-core.git", - "reference": "d55c2b3abb03fe96a67b0f7ca99fbc848ef773a7" + "reference": "e0d8f52dbb7d6e6a5d8df26b56bc68d829c8d519" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-core/zipball/d55c2b3abb03fe96a67b0f7ca99fbc848ef773a7", - "reference": "d55c2b3abb03fe96a67b0f7ca99fbc848ef773a7", + "url": "https://api.github.com/repos/symfony/security-core/zipball/e0d8f52dbb7d6e6a5d8df26b56bc68d829c8d519", + "reference": "e0d8f52dbb7d6e6a5d8df26b56bc68d829c8d519", "shasum": "" }, "require": { @@ -1678,7 +2157,8 @@ "symfony/event-dispatcher": "~2.1", "symfony/expression-language": "~2.4", "symfony/http-foundation": "~2.4", - "symfony/validator": "~2.5" + "symfony/translation": "~2.0,>=2.0.5", + "symfony/validator": "~2.5,>=2.5.5" }, "suggest": { "ircmaxell/password-compat": "For using the BCrypt password encoder in PHP <5.5", @@ -1714,28 +2194,28 @@ ], "description": "Symfony Security Component - Core Library", "homepage": "http://symfony.com", - "time": "2014-12-02 20:15:53" + "time": "2015-01-05 20:58:03" }, { "name": "symfony/translation", - "version": "v2.5.8", + "version": "v2.5.9", "target-dir": "Symfony/Component/Translation", "source": { "type": "git", "url": "https://github.com/symfony/Translation.git", - "reference": "ab6e1580746c248c955a4c70a2a214fe780aa299" + "reference": "165b5348cd20f8c4b2fcf1097c9c8300d1093b90" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Translation/zipball/ab6e1580746c248c955a4c70a2a214fe780aa299", - "reference": "ab6e1580746c248c955a4c70a2a214fe780aa299", + "url": "https://api.github.com/repos/symfony/Translation/zipball/165b5348cd20f8c4b2fcf1097c9c8300d1093b90", + "reference": "165b5348cd20f8c4b2fcf1097c9c8300d1093b90", "shasum": "" }, "require": { "php": ">=5.3.3" }, "require-dev": { - "symfony/config": "~2.0", + "symfony/config": "~2.3,>=2.3.12", "symfony/intl": "~2.3", "symfony/yaml": "~2.2" }, @@ -1770,7 +2250,7 @@ ], "description": "Symfony Translation Component", "homepage": "http://symfony.com", - "time": "2014-12-02 20:15:53" + "time": "2015-01-03 15:23:51" }, { "name": "watson/validating", @@ -2175,427 +2655,6 @@ "description": "BDD assertion library for PHPUnit", "time": "2014-01-22 14:40:33" }, - { - "name": "doctrine/annotations", - "version": "v1.2.3", - "source": { - "type": "git", - "url": "https://github.com/doctrine/annotations.git", - "reference": "eeda578cbe24a170331a1cfdf78be723412df7a4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/eeda578cbe24a170331a1cfdf78be723412df7a4", - "reference": "eeda578cbe24a170331a1cfdf78be723412df7a4", - "shasum": "" - }, - "require": { - "doctrine/lexer": "1.*", - "php": ">=5.3.2" - }, - "require-dev": { - "doctrine/cache": "1.*", - "phpunit/phpunit": "4.*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3.x-dev" - } - }, - "autoload": { - "psr-0": { - "Doctrine\\Common\\Annotations\\": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "Docblock Annotations Parser", - "homepage": "http://www.doctrine-project.org", - "keywords": [ - "annotations", - "docblock", - "parser" - ], - "time": "2014-12-20 20:49:38" - }, - { - "name": "doctrine/cache", - "version": "v1.3.1", - "source": { - "type": "git", - "url": "https://github.com/doctrine/cache.git", - "reference": "cf483685798a72c93bf4206e3dd6358ea07d64e7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/cache/zipball/cf483685798a72c93bf4206e3dd6358ea07d64e7", - "reference": "cf483685798a72c93bf4206e3dd6358ea07d64e7", - "shasum": "" - }, - "require": { - "php": ">=5.3.2" - }, - "conflict": { - "doctrine/common": ">2.2,<2.4" - }, - "require-dev": { - "phpunit/phpunit": ">=3.7", - "satooshi/php-coveralls": "~0.6" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4.x-dev" - } - }, - "autoload": { - "psr-0": { - "Doctrine\\Common\\Cache\\": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "Caching library offering an object-oriented API for many cache backends", - "homepage": "http://www.doctrine-project.org", - "keywords": [ - "cache", - "caching" - ], - "time": "2014-09-17 14:24:04" - }, - { - "name": "doctrine/collections", - "version": "v1.2", - "source": { - "type": "git", - "url": "https://github.com/doctrine/collections.git", - "reference": "b99c5c46c87126201899afe88ec490a25eedd6a2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/collections/zipball/b99c5c46c87126201899afe88ec490a25eedd6a2", - "reference": "b99c5c46c87126201899afe88ec490a25eedd6a2", - "shasum": "" - }, - "require": { - "php": ">=5.3.2" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev" - } - }, - "autoload": { - "psr-0": { - "Doctrine\\Common\\Collections\\": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com", - "homepage": "http://www.jwage.com/", - "role": "Creator" - }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com", - "homepage": "http://www.instaclick.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com", - "homepage": "https://github.com/schmittjoh", - "role": "Developer of wrapped JMSSerializerBundle" - } - ], - "description": "Collections Abstraction library", - "homepage": "http://www.doctrine-project.org", - "keywords": [ - "array", - "collections", - "iterator" - ], - "time": "2014-02-03 23:07:43" - }, - { - "name": "doctrine/common", - "version": "v2.4.2", - "source": { - "type": "git", - "url": "https://github.com/doctrine/common.git", - "reference": "5db6ab40e4c531f14dad4ca96a394dfce5d4255b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/common/zipball/5db6ab40e4c531f14dad4ca96a394dfce5d4255b", - "reference": "5db6ab40e4c531f14dad4ca96a394dfce5d4255b", - "shasum": "" - }, - "require": { - "doctrine/annotations": "1.*", - "doctrine/cache": "1.*", - "doctrine/collections": "1.*", - "doctrine/inflector": "1.*", - "doctrine/lexer": "1.*", - "php": ">=5.3.2" - }, - "require-dev": { - "phpunit/phpunit": "~3.7" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.4.x-dev" - } - }, - "autoload": { - "psr-0": { - "Doctrine\\Common\\": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com", - "homepage": "http://www.jwage.com/", - "role": "Creator" - }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com", - "homepage": "http://www.instaclick.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com", - "homepage": "https://github.com/schmittjoh", - "role": "Developer of wrapped JMSSerializerBundle" - } - ], - "description": "Common Library for Doctrine projects", - "homepage": "http://www.doctrine-project.org", - "keywords": [ - "annotations", - "collections", - "eventmanager", - "persistence", - "spl" - ], - "time": "2014-05-21 19:28:51" - }, - { - "name": "doctrine/dbal", - "version": "v2.5.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/dbal.git", - "reference": "71140662c0a954602e81271667b6e03d9f53ea34" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/71140662c0a954602e81271667b6e03d9f53ea34", - "reference": "71140662c0a954602e81271667b6e03d9f53ea34", - "shasum": "" - }, - "require": { - "doctrine/common": ">=2.4,<2.6-dev", - "php": ">=5.3.2" - }, - "require-dev": { - "phpunit/phpunit": "4.*", - "symfony/console": "2.*" - }, - "suggest": { - "symfony/console": "For helpful console commands such as SQL execution and import of files." - }, - "bin": [ - "bin/doctrine-dbal" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.5.x-dev" - } - }, - "autoload": { - "psr-0": { - "Doctrine\\DBAL\\": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - } - ], - "description": "Database Abstraction Layer", - "homepage": "http://www.doctrine-project.org", - "keywords": [ - "database", - "dbal", - "persistence", - "queryobject" - ], - "time": "2014-12-04 21:57:15" - }, - { - "name": "doctrine/inflector", - "version": "v1.0.1", - "source": { - "type": "git", - "url": "https://github.com/doctrine/inflector.git", - "reference": "0bcb2e79d8571787f18b7eb036ed3d004908e604" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/0bcb2e79d8571787f18b7eb036ed3d004908e604", - "reference": "0bcb2e79d8571787f18b7eb036ed3d004908e604", - "shasum": "" - }, - "require": { - "php": ">=5.3.2" - }, - "require-dev": { - "phpunit/phpunit": "4.*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-0": { - "Doctrine\\Common\\Inflector\\": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "Common String Manipulations with regard to casing and singular/plural rules.", - "homepage": "http://www.doctrine-project.org", - "keywords": [ - "inflection", - "pluralize", - "singularize", - "string" - ], - "time": "2014-12-20 21:24:13" - }, { "name": "doctrine/instantiator", "version": "1.0.4", @@ -2650,58 +2709,6 @@ ], "time": "2014-10-13 12:58:55" }, - { - "name": "doctrine/lexer", - "version": "v1.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/lexer.git", - "reference": "2f708a85bb3aab5d99dab8be435abd73e0b18acb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/2f708a85bb3aab5d99dab8be435abd73e0b18acb", - "reference": "2f708a85bb3aab5d99dab8be435abd73e0b18acb", - "shasum": "" - }, - "require": { - "php": ">=5.3.2" - }, - "type": "library", - "autoload": { - "psr-0": { - "Doctrine\\Common\\Lexer\\": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com", - "homepage": "http://www.instaclick.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com", - "homepage": "https://github.com/schmittjoh", - "role": "Developer of wrapped JMSSerializerBundle" - } - ], - "description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.", - "homepage": "http://www.doctrine-project.org", - "keywords": [ - "lexer", - "parser" - ], - "time": "2013-01-12 18:59:04" - }, { "name": "facebook/webdriver", "version": "v0.5.1", @@ -4270,24 +4277,24 @@ }, { "name": "symfony/class-loader", - "version": "v2.6.1", + "version": "v2.6.3", "target-dir": "Symfony/Component/ClassLoader", "source": { "type": "git", "url": "https://github.com/symfony/ClassLoader.git", - "reference": "ba3300e6d79eb51ca9edf77791bbd0497f6030dc" + "reference": "deac802f76910708ab50d039806cfd1866895b52" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/ClassLoader/zipball/ba3300e6d79eb51ca9edf77791bbd0497f6030dc", - "reference": "ba3300e6d79eb51ca9edf77791bbd0497f6030dc", + "url": "https://api.github.com/repos/symfony/ClassLoader/zipball/deac802f76910708ab50d039806cfd1866895b52", + "reference": "deac802f76910708ab50d039806cfd1866895b52", "shasum": "" }, "require": { "php": ">=5.3.3" }, "require-dev": { - "symfony/finder": "~2.0" + "symfony/finder": "~2.0,>=2.0.5" }, "type": "library", "extra": { @@ -4316,21 +4323,21 @@ ], "description": "Symfony ClassLoader Component", "homepage": "http://symfony.com", - "time": "2014-12-02 20:19:20" + "time": "2015-01-05 14:28:40" }, { "name": "symfony/config", - "version": "v2.6.1", + "version": "v2.6.3", "target-dir": "Symfony/Component/Config", "source": { "type": "git", "url": "https://github.com/symfony/Config.git", - "reference": "84c0c150c1520995f09ea9e47e817068b353cb0f" + "reference": "d94f222eff99a22ce313555b78642b4873418d56" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Config/zipball/84c0c150c1520995f09ea9e47e817068b353cb0f", - "reference": "84c0c150c1520995f09ea9e47e817068b353cb0f", + "url": "https://api.github.com/repos/symfony/Config/zipball/d94f222eff99a22ce313555b78642b4873418d56", + "reference": "d94f222eff99a22ce313555b78642b4873418d56", "shasum": "" }, "require": { @@ -4364,21 +4371,21 @@ ], "description": "Symfony Config Component", "homepage": "http://symfony.com", - "time": "2014-12-02 20:19:20" + "time": "2015-01-03 08:01:59" }, { "name": "symfony/stopwatch", - "version": "v2.6.1", + "version": "v2.6.3", "target-dir": "Symfony/Component/Stopwatch", "source": { "type": "git", "url": "https://github.com/symfony/Stopwatch.git", - "reference": "261abd360cfb6ac65ea93ffd82073e2011d034fc" + "reference": "e8da5286132ba75ce4b4275fbf0f4cd369bfd71c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Stopwatch/zipball/261abd360cfb6ac65ea93ffd82073e2011d034fc", - "reference": "261abd360cfb6ac65ea93ffd82073e2011d034fc", + "url": "https://api.github.com/repos/symfony/Stopwatch/zipball/e8da5286132ba75ce4b4275fbf0f4cd369bfd71c", + "reference": "e8da5286132ba75ce4b4275fbf0f4cd369bfd71c", "shasum": "" }, "require": { @@ -4411,21 +4418,21 @@ ], "description": "Symfony Stopwatch Component", "homepage": "http://symfony.com", - "time": "2014-12-02 20:19:20" + "time": "2015-01-03 08:01:59" }, { "name": "symfony/var-dumper", - "version": "v2.6.1", + "version": "v2.6.3", "target-dir": "Symfony/Component/VarDumper", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "8f3ee04faeca3b8418229b2efbfc8b2b8625b8aa" + "reference": "36af986811340fd4c1bc39cf848da388bbdd8473" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/8f3ee04faeca3b8418229b2efbfc8b2b8625b8aa", - "reference": "8f3ee04faeca3b8418229b2efbfc8b2b8625b8aa", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/36af986811340fd4c1bc39cf848da388bbdd8473", + "reference": "36af986811340fd4c1bc39cf848da388bbdd8473", "shasum": "" }, "require": { @@ -4464,21 +4471,21 @@ "debug", "dump" ], - "time": "2014-11-18 10:08:24" + "time": "2015-01-01 13:28:01" }, { "name": "symfony/yaml", - "version": "v2.6.1", + "version": "v2.6.3", "target-dir": "Symfony/Component/Yaml", "source": { "type": "git", "url": "https://github.com/symfony/Yaml.git", - "reference": "3346fc090a3eb6b53d408db2903b241af51dcb20" + "reference": "82462a90848a52c2533aa6b598b107d68076b018" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Yaml/zipball/3346fc090a3eb6b53d408db2903b241af51dcb20", - "reference": "3346fc090a3eb6b53d408db2903b241af51dcb20", + "url": "https://api.github.com/repos/symfony/Yaml/zipball/82462a90848a52c2533aa6b598b107d68076b018", + "reference": "82462a90848a52c2533aa6b598b107d68076b018", "shasum": "" }, "require": { @@ -4511,7 +4518,7 @@ ], "description": "Symfony Yaml Component", "homepage": "http://symfony.com", - "time": "2014-12-02 20:19:20" + "time": "2015-01-03 15:33:07" }, { "name": "theseer/fdomdocument", @@ -4563,6 +4570,7 @@ "mockery/mockery": 0 }, "prefer-stable": false, + "prefer-lowest": false, "platform": [], "platform-dev": [] } diff --git a/public/assets/highslide/close.png b/public/assets/highslide/close.png deleted file mode 100755 index 4de4396d4a..0000000000 Binary files a/public/assets/highslide/close.png and /dev/null differ diff --git a/public/assets/highslide/closeX.png b/public/assets/highslide/closeX.png deleted file mode 100755 index cf5d018172..0000000000 Binary files a/public/assets/highslide/closeX.png and /dev/null differ diff --git a/public/assets/highslide/controlbar-black-border.gif b/public/assets/highslide/controlbar-black-border.gif deleted file mode 100755 index e2403fe83a..0000000000 Binary files a/public/assets/highslide/controlbar-black-border.gif and /dev/null differ diff --git a/public/assets/highslide/controlbar-text-buttons.png b/public/assets/highslide/controlbar-text-buttons.png deleted file mode 100755 index d2f72e0a81..0000000000 Binary files a/public/assets/highslide/controlbar-text-buttons.png and /dev/null differ diff --git a/public/assets/highslide/controlbar-white-small.gif b/public/assets/highslide/controlbar-white-small.gif deleted file mode 100755 index 462fce7514..0000000000 Binary files a/public/assets/highslide/controlbar-white-small.gif and /dev/null differ diff --git a/public/assets/highslide/controlbar-white.gif b/public/assets/highslide/controlbar-white.gif deleted file mode 100755 index 1f143f5b85..0000000000 Binary files a/public/assets/highslide/controlbar-white.gif and /dev/null differ diff --git a/public/assets/highslide/controlbar2.gif b/public/assets/highslide/controlbar2.gif deleted file mode 100755 index 39ad65218c..0000000000 Binary files a/public/assets/highslide/controlbar2.gif and /dev/null differ diff --git a/public/assets/highslide/controlbar3.gif b/public/assets/highslide/controlbar3.gif deleted file mode 100755 index 3eebb8110e..0000000000 Binary files a/public/assets/highslide/controlbar3.gif and /dev/null differ diff --git a/public/assets/highslide/controlbar4-hover.gif b/public/assets/highslide/controlbar4-hover.gif deleted file mode 100755 index ca08b59c22..0000000000 Binary files a/public/assets/highslide/controlbar4-hover.gif and /dev/null differ diff --git a/public/assets/highslide/controlbar4.gif b/public/assets/highslide/controlbar4.gif deleted file mode 100755 index 7a3ad34421..0000000000 Binary files a/public/assets/highslide/controlbar4.gif and /dev/null differ diff --git a/public/assets/highslide/fullexpand.gif b/public/assets/highslide/fullexpand.gif deleted file mode 100755 index 26d9ed02ba..0000000000 Binary files a/public/assets/highslide/fullexpand.gif and /dev/null differ diff --git a/public/assets/highslide/geckodimmer.png b/public/assets/highslide/geckodimmer.png deleted file mode 100755 index 309bb27838..0000000000 Binary files a/public/assets/highslide/geckodimmer.png and /dev/null differ diff --git a/public/assets/highslide/highslide/loader.white.gif b/public/assets/highslide/highslide/loader.white.gif deleted file mode 100755 index f2a1bc0c6f..0000000000 Binary files a/public/assets/highslide/highslide/loader.white.gif and /dev/null differ diff --git a/public/assets/highslide/icon.gif b/public/assets/highslide/icon.gif deleted file mode 100755 index b74a073c13..0000000000 Binary files a/public/assets/highslide/icon.gif and /dev/null differ diff --git a/public/assets/highslide/loader.gif b/public/assets/highslide/loader.gif deleted file mode 100755 index 0b31f6f9e2..0000000000 Binary files a/public/assets/highslide/loader.gif and /dev/null differ diff --git a/public/assets/highslide/loader.white.gif b/public/assets/highslide/loader.white.gif deleted file mode 100755 index f2a1bc0c6f..0000000000 Binary files a/public/assets/highslide/loader.white.gif and /dev/null differ diff --git a/public/assets/highslide/outlines/Outlines.psd b/public/assets/highslide/outlines/Outlines.psd deleted file mode 100755 index 5405651510..0000000000 Binary files a/public/assets/highslide/outlines/Outlines.psd and /dev/null differ diff --git a/public/assets/highslide/outlines/beveled.png b/public/assets/highslide/outlines/beveled.png deleted file mode 100755 index fc428f415c..0000000000 Binary files a/public/assets/highslide/outlines/beveled.png and /dev/null differ diff --git a/public/assets/highslide/outlines/drop-shadow.png b/public/assets/highslide/outlines/drop-shadow.png deleted file mode 100755 index 0186c2ee47..0000000000 Binary files a/public/assets/highslide/outlines/drop-shadow.png and /dev/null differ diff --git a/public/assets/highslide/outlines/glossy-dark.png b/public/assets/highslide/outlines/glossy-dark.png deleted file mode 100755 index 3c64c0d41c..0000000000 Binary files a/public/assets/highslide/outlines/glossy-dark.png and /dev/null differ diff --git a/public/assets/highslide/outlines/outer-glow.png b/public/assets/highslide/outlines/outer-glow.png deleted file mode 100755 index 288d43feff..0000000000 Binary files a/public/assets/highslide/outlines/outer-glow.png and /dev/null differ diff --git a/public/assets/highslide/outlines/rounded-black.png b/public/assets/highslide/outlines/rounded-black.png deleted file mode 100755 index a77e65d8f3..0000000000 Binary files a/public/assets/highslide/outlines/rounded-black.png and /dev/null differ diff --git a/public/assets/highslide/outlines/rounded-white.png b/public/assets/highslide/outlines/rounded-white.png deleted file mode 100755 index 0d4b8176f5..0000000000 Binary files a/public/assets/highslide/outlines/rounded-white.png and /dev/null differ diff --git a/public/assets/highslide/resize.gif b/public/assets/highslide/resize.gif deleted file mode 100755 index 9100de776d..0000000000 Binary files a/public/assets/highslide/resize.gif and /dev/null differ diff --git a/public/assets/highslide/scrollarrows.png b/public/assets/highslide/scrollarrows.png deleted file mode 100755 index b3d55756dc..0000000000 Binary files a/public/assets/highslide/scrollarrows.png and /dev/null differ diff --git a/public/assets/highslide/zoomin.cur b/public/assets/highslide/zoomin.cur deleted file mode 100755 index cb7912438f..0000000000 Binary files a/public/assets/highslide/zoomin.cur and /dev/null differ diff --git a/public/assets/highslide/zoomout.cur b/public/assets/highslide/zoomout.cur deleted file mode 100755 index acf6199963..0000000000 Binary files a/public/assets/highslide/zoomout.cur and /dev/null differ diff --git a/public/assets/stylesheets/datatables/dataTables.bootstrap.css b/public/assets/stylesheets/datatables/dataTables.bootstrap.css deleted file mode 100644 index 06de426a8c..0000000000 --- a/public/assets/stylesheets/datatables/dataTables.bootstrap.css +++ /dev/null @@ -1,281 +0,0 @@ -div.dataTables_length label { - font-weight: normal; - float: left; - text-align: left; -} - -div.dataTables_length select { - width: 75px; -} - -div.dataTables_filter label { - font-weight: normal; - float: right; -} - -div.dataTables_filter input { - width: 16em; -} - -div.dataTables_info { - padding-top: 8px; -} - -div.dataTables_paginate { - float: right; - margin: 0; -} - -div.dataTables_paginate ul.pagination { - margin: 2px 0; - white-space: nowrap; -} - -table.dataTable td, -table.dataTable th { - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; -} - - -table.dataTable { - clear: both; - margin-top: 6px !important; - margin-bottom: 6px !important; - max-width: none !important; -} - -table.dataTable thead .sorting, -table.dataTable thead .sorting_asc, -table.dataTable thead .sorting_desc, -table.dataTable thead .sorting_asc_disabled, -table.dataTable thead .sorting_desc_disabled { - cursor: pointer; -} - -table.dataTable thead .sorting { background: url('../images/sort_both.png') no-repeat center right; } -table.dataTable thead .sorting_asc { background: url('../images/sort_asc.png') no-repeat center right; } -table.dataTable thead .sorting_desc { background: url('../images/sort_desc.png') no-repeat center right; } - -table.dataTable thead .sorting_asc_disabled { background: url('../images/sort_asc_disabled.png') no-repeat center right; } -table.dataTable thead .sorting_desc_disabled { background: url('../images/sort_desc_disabled.png') no-repeat center right; } - -table.dataTable thead > tr > th { - padding-left: 18px; - padding-right: 18px; -} - -table.dataTable th:active { - outline: none; -} - -/* Scrolling */ -div.dataTables_scrollHead table { - margin-bottom: 0 !important; - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; -} - -div.dataTables_scrollHead table thead tr:last-child th:first-child, -div.dataTables_scrollHead table thead tr:last-child td:first-child { - border-bottom-left-radius: 0 !important; - border-bottom-right-radius: 0 !important; -} - -div.dataTables_scrollBody table { - border-top: none; - margin-top: 0 !important; - margin-bottom: 0 !important; -} - -div.dataTables_scrollBody tbody tr:first-child th, -div.dataTables_scrollBody tbody tr:first-child td { - border-top: none; -} - -div.dataTables_scrollFoot table { - margin-top: 0 !important; - border-top: none; -} - -/* Frustratingly the border-collapse:collapse used by Bootstrap makes the column - width calculations when using scrolling impossible to align columns. We have - to use separate - */ -table.table-bordered.dataTable { - border-collapse: separate !important; -} -table.table-bordered thead th, -table.table-bordered thead td { - border-left-width: 0; - border-top-width: 0; -} -table.table-bordered tbody th, -table.table-bordered tbody td { - border-left-width: 0; - border-bottom-width: 0; -} -table.table-bordered th:last-child, -table.table-bordered td:last-child { - border-right-width: 0; -} -div.dataTables_scrollHead table.table-bordered { - border-bottom-width: 0; -} - - - - -/* - * TableTools styles - */ -.table tbody tr.active td, -.table tbody tr.active th { - background-color: #08C; - color: white; -} - -.table tbody tr.active:hover td, -.table tbody tr.active:hover th { - background-color: #0075b0 !important; -} - -.table tbody tr.active a { - color: white; -} - -.table-striped tbody tr.active:nth-child(odd) td, -.table-striped tbody tr.active:nth-child(odd) th { - background-color: #017ebc; -} - -table.DTTT_selectable tbody tr { - cursor: pointer; -} - -div.DTTT .btn { - color: #333 !important; - font-size: 12px; -} - -div.DTTT .btn:hover { - text-decoration: none !important; -} - -ul.DTTT_dropdown.dropdown-menu { - z-index: 2003; -} - -ul.DTTT_dropdown.dropdown-menu a { - color: #333 !important; /* needed only when demo_page.css is included */ -} - -ul.DTTT_dropdown.dropdown-menu li { - position: relative; -} - -ul.DTTT_dropdown.dropdown-menu li:hover a { - background-color: #0088cc; - color: white !important; -} - -div.DTTT_collection_background { - z-index: 2002; -} - -/* TableTools information display */ -div.DTTT_print_info.modal { - height: 150px; - margin-top: -75px; - text-align: center; -} - -div.DTTT_print_info h6 { - font-weight: normal; - font-size: 28px; - line-height: 28px; - margin: 1em; -} - -div.DTTT_print_info p { - font-size: 14px; - line-height: 20px; -} - -div.dataTables_processing { - position: absolute; - top: 50%; - left: 50%; - width: 100%; - height: 40px; - margin-left: -50%; - margin-top: -25px; - padding-top: 20px; - text-align: center; - font-size: 1.2em; - background-color: white; - background: -webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255,255,255,0)), color-stop(25%, rgba(255,255,255,0.9)), color-stop(75%, rgba(255,255,255,0.9)), color-stop(100%, rgba(255,255,255,0))); - background: -webkit-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%); - background: -moz-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%); - background: -ms-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%); - background: -o-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%); - background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%); -} - - - -/* - * FixedColumns styles - */ -div.DTFC_LeftHeadWrapper table, -div.DTFC_LeftFootWrapper table, -div.DTFC_RightHeadWrapper table, -div.DTFC_RightFootWrapper table, -table.DTFC_Cloned tr.even { - background-color: white; - margin-bottom: 0; -} - -div.DTFC_RightHeadWrapper table , -div.DTFC_LeftHeadWrapper table { - margin-bottom: 0 !important; - border-top-right-radius: 0 !important; - border-bottom-left-radius: 0 !important; - border-bottom-right-radius: 0 !important; -} - -div.DTFC_RightHeadWrapper table thead tr:last-child th:first-child, -div.DTFC_RightHeadWrapper table thead tr:last-child td:first-child, -div.DTFC_LeftHeadWrapper table thead tr:last-child th:first-child, -div.DTFC_LeftHeadWrapper table thead tr:last-child td:first-child { - border-bottom-left-radius: 0 !important; - border-bottom-right-radius: 0 !important; -} - -div.DTFC_RightBodyWrapper table, -div.DTFC_LeftBodyWrapper table { - border-top: none; - margin: 0 !important; -} - -div.DTFC_RightBodyWrapper tbody tr:first-child th, -div.DTFC_RightBodyWrapper tbody tr:first-child td, -div.DTFC_LeftBodyWrapper tbody tr:first-child th, -div.DTFC_LeftBodyWrapper tbody tr:first-child td { - border-top: none; -} - -div.DTFC_RightFootWrapper table, -div.DTFC_LeftFootWrapper table { - border-top: none; -} - - -/* - * FixedHeader styles - */ -div.FixedHeader_Cloned table { - margin: 0 !important -} - diff --git a/public/assets/stylesheets/images/Sorting icons.psd b/public/assets/stylesheets/images/Sorting icons.psd deleted file mode 100644 index 53b2e06850..0000000000 Binary files a/public/assets/stylesheets/images/Sorting icons.psd and /dev/null differ diff --git a/public/assets/stylesheets/images/back_disabled.png b/public/assets/stylesheets/images/back_disabled.png deleted file mode 100644 index 881de7976f..0000000000 Binary files a/public/assets/stylesheets/images/back_disabled.png and /dev/null differ diff --git a/public/assets/stylesheets/images/back_enabled.png b/public/assets/stylesheets/images/back_enabled.png deleted file mode 100644 index c608682b04..0000000000 Binary files a/public/assets/stylesheets/images/back_enabled.png and /dev/null differ diff --git a/public/assets/stylesheets/images/back_enabled_hover.png b/public/assets/stylesheets/images/back_enabled_hover.png deleted file mode 100644 index d300f1064b..0000000000 Binary files a/public/assets/stylesheets/images/back_enabled_hover.png and /dev/null differ diff --git a/public/assets/stylesheets/images/favicon.ico b/public/assets/stylesheets/images/favicon.ico deleted file mode 100644 index 6eeaa2a0d3..0000000000 Binary files a/public/assets/stylesheets/images/favicon.ico and /dev/null differ diff --git a/public/assets/stylesheets/images/forward_disabled.png b/public/assets/stylesheets/images/forward_disabled.png deleted file mode 100644 index 6a6ded7de8..0000000000 Binary files a/public/assets/stylesheets/images/forward_disabled.png and /dev/null differ diff --git a/public/assets/stylesheets/images/forward_enabled.png b/public/assets/stylesheets/images/forward_enabled.png deleted file mode 100644 index a4e6b5384b..0000000000 Binary files a/public/assets/stylesheets/images/forward_enabled.png and /dev/null differ diff --git a/public/assets/stylesheets/images/forward_enabled_hover.png b/public/assets/stylesheets/images/forward_enabled_hover.png deleted file mode 100644 index fc46c5ebf0..0000000000 Binary files a/public/assets/stylesheets/images/forward_enabled_hover.png and /dev/null differ diff --git a/public/assets/stylesheets/images/sort_asc.png b/public/assets/stylesheets/images/sort_asc.png deleted file mode 100644 index a88d7975fe..0000000000 Binary files a/public/assets/stylesheets/images/sort_asc.png and /dev/null differ diff --git a/public/assets/stylesheets/images/sort_asc_disabled.png b/public/assets/stylesheets/images/sort_asc_disabled.png deleted file mode 100644 index dcd7b7b8ca..0000000000 Binary files a/public/assets/stylesheets/images/sort_asc_disabled.png and /dev/null differ diff --git a/public/assets/stylesheets/images/sort_both.png b/public/assets/stylesheets/images/sort_both.png deleted file mode 100644 index 18670406bc..0000000000 Binary files a/public/assets/stylesheets/images/sort_both.png and /dev/null differ diff --git a/public/assets/stylesheets/images/sort_desc.png b/public/assets/stylesheets/images/sort_desc.png deleted file mode 100644 index def071ed5a..0000000000 Binary files a/public/assets/stylesheets/images/sort_desc.png and /dev/null differ diff --git a/public/assets/stylesheets/images/sort_desc_disabled.png b/public/assets/stylesheets/images/sort_desc_disabled.png deleted file mode 100644 index 7824973cc6..0000000000 Binary files a/public/assets/stylesheets/images/sort_desc_disabled.png and /dev/null differ diff --git a/tests/functional/TransactionControllerCest.php b/tests/functional/TransactionControllerCest.php index 54e337305b..fa7caccfd5 100644 --- a/tests/functional/TransactionControllerCest.php +++ b/tests/functional/TransactionControllerCest.php @@ -106,6 +106,17 @@ class TransactionControllerCest $I->see(intval($journal->getAmount())); } + public function showGroupedJournal(FunctionalTester $I) + { + $journal = TransactionJournal::where('description', 'LIKE', 'Big expense in %')->first(); + + + $I->wantTo('see a grouped transaction'); + $I->amOnPage('/transaction/show/' . $journal->id); + $I->see($journal->description); + $I->see('Money for '.$journal->description); + } + public function store(FunctionalTester $I) { $I->wantTo('store a transaction'); diff --git a/tests/unit/UserTest.php b/tests/unit/UserTest.php index 8a1b60a65f..87b4c9d69e 100644 --- a/tests/unit/UserTest.php +++ b/tests/unit/UserTest.php @@ -23,12 +23,14 @@ class UserTest extends TestCase { $pref = f::create('Preference'); $this->assertEquals($pref->user_id, $pref->user->id); + $this->assertCount(1, $pref->user->preferences()->get()); } public function testReminder() { $reminder = f::create('Reminder'); $this->assertEquals($reminder->user_id, $reminder->user->id); + $this->assertCount(1, $reminder->user->reminders()->get()); } }