From 91deac706c772c47de156e680067c567cf328f0c Mon Sep 17 00:00:00 2001 From: James Cole Date: Sun, 23 Dec 2018 07:21:47 +0100 Subject: [PATCH] Some new code for the new layout. --- package-lock.json | 154 ++++++++++++++++-- package.json | 23 +-- public/v2/assets/images/basic-logo-ff3.png | Bin 0 -> 23037 bytes public/v2/assets/js/dashboard.js | 20 +-- public/v2/assets/plugins/charts-c3/plugin.js | 4 +- public/v2/assets/plugins/input-mask/plugin.js | 2 +- resources/js/app.js | 16 ++ resources/js/bootstrap.js | 56 +++++++ resources/js/components/Example.js | 26 +++ resources/lang/en_US/firefly.php | 5 + resources/views/v2/index.twig | 3 + resources/views/v2/layout/default.twig | 138 ++-------------- resources/views/v2/partials/index_boxes.twig | 0 resources/views/v2/partials/top_bar.twig | 88 ++++++++++ resources/views/v2/partials/top_menu.twig | 49 ++++++ webpack.mix.js | 5 +- 16 files changed, 426 insertions(+), 163 deletions(-) mode change 100755 => 100644 package.json create mode 100644 public/v2/assets/images/basic-logo-ff3.png create mode 100644 resources/js/app.js create mode 100644 resources/js/bootstrap.js create mode 100644 resources/js/components/Example.js create mode 100644 resources/views/v2/partials/index_boxes.twig create mode 100644 resources/views/v2/partials/top_bar.twig create mode 100644 resources/views/v2/partials/top_menu.twig diff --git a/package-lock.json b/package-lock.json index 0bb7e2d589..c2cb74e258 100755 --- a/package-lock.json +++ b/package-lock.json @@ -522,6 +522,17 @@ "babel-types": "6.26.0" } }, + "babel-helper-builder-react-jsx": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz", + "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "esutils": "2.0.2" + } + }, "babel-helper-call-delegate": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", @@ -689,6 +700,18 @@ "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=", "dev": true }, + "babel-plugin-syntax-flow": { + "version": "6.18.0", + "resolved": "http://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz", + "integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=", + "dev": true + }, + "babel-plugin-syntax-jsx": { + "version": "6.18.0", + "resolved": "http://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", + "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=", + "dev": true + }, "babel-plugin-syntax-object-rest-spread": { "version": "6.13.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", @@ -957,6 +980,16 @@ "babel-runtime": "6.26.0" } }, + "babel-plugin-transform-flow-strip-types": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", + "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", + "dev": true, + "requires": { + "babel-plugin-syntax-flow": "6.18.0", + "babel-runtime": "6.26.0" + } + }, "babel-plugin-transform-object-rest-spread": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", @@ -967,6 +1000,46 @@ "babel-runtime": "6.26.0" } }, + "babel-plugin-transform-react-display-name": { + "version": "6.25.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz", + "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-react-jsx": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz", + "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", + "dev": true, + "requires": { + "babel-helper-builder-react-jsx": "6.26.0", + "babel-plugin-syntax-jsx": "6.18.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-react-jsx-self": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz", + "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=", + "dev": true, + "requires": { + "babel-plugin-syntax-jsx": "6.18.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-react-jsx-source": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz", + "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=", + "dev": true, + "requires": { + "babel-plugin-syntax-jsx": "6.18.0", + "babel-runtime": "6.26.0" + } + }, "babel-plugin-transform-regenerator": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", @@ -1033,6 +1106,29 @@ "semver": "5.5.0" } }, + "babel-preset-flow": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz", + "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", + "dev": true, + "requires": { + "babel-plugin-transform-flow-strip-types": "6.22.0" + } + }, + "babel-preset-react": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz", + "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", + "dev": true, + "requires": { + "babel-plugin-syntax-jsx": "6.18.0", + "babel-plugin-transform-react-display-name": "6.25.0", + "babel-plugin-transform-react-jsx": "6.24.1", + "babel-plugin-transform-react-jsx-self": "6.22.0", + "babel-plugin-transform-react-jsx-source": "6.22.0", + "babel-preset-flow": "6.23.0" + } + }, "babel-register": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", @@ -1365,10 +1461,10 @@ "hoek": "2.16.3" } }, - "bootstrap-sass": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/bootstrap-sass/-/bootstrap-sass-3.3.7.tgz", - "integrity": "sha1-ZZbHq0D2Y3OTMjqwvIDQZPxjBJg=", + "bootstrap": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.2.1.tgz", + "integrity": "sha512-tt/7vIv3Gm2mnd/WeDx36nfGGHleil0Wg8IeB7eMrVkY0fZ5iTaBisSh8oNANc2IBsCc6vCgCNTIM/IEN0+50Q==", "dev": true }, "brace-expansion": { @@ -10073,6 +10169,16 @@ "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", "dev": true }, + "prop-types": { + "version": "15.6.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", + "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", + "dev": true, + "requires": { + "loose-envify": "1.3.1", + "object-assign": "4.1.1" + } + }, "proxy-addr": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.2.tgz", @@ -10285,6 +10391,30 @@ } } }, + "react": { + "version": "16.7.0", + "resolved": "https://registry.npmjs.org/react/-/react-16.7.0.tgz", + "integrity": "sha512-StCz3QY8lxTb5cl2HJxjwLFOXPIFQp+p+hxQfc8WE0QiLfCtIlKj8/+5tjjKm8uSTlAW+fCPaavGFS06V9Ar3A==", + "dev": true, + "requires": { + "loose-envify": "1.3.1", + "object-assign": "4.1.1", + "prop-types": "15.6.2", + "scheduler": "0.12.0" + } + }, + "react-dom": { + "version": "16.7.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.7.0.tgz", + "integrity": "sha512-D0Ufv1ExCAmF38P2Uh1lwpminZFRXEINJe53zRAbm4KPwSyd6DY/uDoS0Blj9jvPpn1+wivKpZYc8aAAN/nAkg==", + "dev": true, + "requires": { + "loose-envify": "1.3.1", + "object-assign": "4.1.1", + "prop-types": "15.6.2", + "scheduler": "0.12.0" + } + }, "read-all-stream": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/read-all-stream/-/read-all-stream-3.1.0.tgz", @@ -10796,6 +10926,16 @@ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "dev": true }, + "scheduler": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.12.0.tgz", + "integrity": "sha512-t7MBR28Akcp4Jm+QoR63XgAi9YgCUmgvDHqf5otgAj4QvdoBE4ImCX0ffehefePPG+aitiYHp0g/mW6s4Tp+dw==", + "dev": true, + "requires": { + "loose-envify": "1.3.1", + "object-assign": "4.1.1" + } + }, "schema-utils": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", @@ -12795,12 +12935,6 @@ "indexof": "0.0.1" } }, - "vue": { - "version": "2.5.13", - "resolved": "https://registry.npmjs.org/vue/-/vue-2.5.13.tgz", - "integrity": "sha512-3D+lY7HTkKbtswDM4BBHgqyq+qo8IAEE8lz8va1dz3LLmttjgo0FxairO4r1iN2OBqk8o1FyL4hvzzTFEdQSEw==", - "dev": true - }, "vue-hot-reload-api": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.2.4.tgz", diff --git a/package.json b/package.json old mode 100755 new mode 100644 index bd9df38cf5..544d582ad9 --- a/package.json +++ b/package.json @@ -3,22 +3,25 @@ "scripts": { "dev": "npm run development", "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", - "watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", + "watch": "npm run development -- --watch", "watch-poll": "npm run watch -- --watch-poll", "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js", "prod": "npm run production", "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js" }, "devDependencies": { - "axios": "^0.17", - "bootstrap-sass": "^3.3.7", + "axios": "^0.18", + "babel-preset-react": "^6.23.0", + "bootstrap": "^4.0.0", "cross-env": "^5.1", - "jquery": "^3.1.1", - "laravel-mix": "^1.0", - "lodash": "^4.17.4", - "vue": "^2.5.7" - }, - "dependencies": { - "font-awesome": "^4.7.0" + "jquery": "^3.2", + "laravel-mix": "^4.0.7", + "lodash": "^4.17.5", + "popper.js": "^1.12", + "react": "^16.2.0", + "react-dom": "^16.2.0", + "resolve-url-loader": "^2.3.1", + "sass": "^1.15.2", + "sass-loader": "^7.1.0" } } diff --git a/public/v2/assets/images/basic-logo-ff3.png b/public/v2/assets/images/basic-logo-ff3.png new file mode 100644 index 0000000000000000000000000000000000000000..abc3542fbfe20cd52b6ff0e001072f7cf6997498 GIT binary patch literal 23037 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

Vi1}mQ@m-ISK+0q05g#CN`e%`2PYlxxDE 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 +

+ + ); + } +} + +if (document.getElementById('example')) { + ReactDOM.render(, document.getElementById('example')); +} diff --git a/resources/lang/en_US/firefly.php b/resources/lang/en_US/firefly.php index 4a72affcd0..937e69ef85 100644 --- a/resources/lang/en_US/firefly.php +++ b/resources/lang/en_US/firefly.php @@ -41,6 +41,7 @@ return [ 'cancel' => 'Cancel', 'from' => 'From', 'to' => 'To', + 'structure' => 'Structure', 'help_translating' => 'This help text is not yet available in your language. Will you help translate?', 'showEverything' => 'Show everything', 'never' => 'Never', @@ -113,6 +114,7 @@ return [ 'cannot_redirect_to_account' => 'Firefly III cannot redirect you to the correct page. Apologies.', 'sum_of_expenses' => 'Sum of expenses', 'sum_of_income' => 'Sum of income', + 'liabilities' => 'Liabilities', 'spent_in_specific_budget' => 'Spent in budget ":budget"', 'sum_of_expenses_in_budget' => 'Spent total in budget ":budget"', 'left_in_budget_limit' => 'Left to spend according to budgeting', @@ -913,7 +915,10 @@ return [ 'income' => 'Revenue / income', 'transfers' => 'Transfers', 'moneyManagement' => 'Money management', + 'money_management' => 'Money management', + 'tools' => 'Tools', 'piggyBanks' => 'Piggy banks', + 'piggy_banks' => 'Piggy banks', 'bills' => 'Bills', 'withdrawal' => 'Withdrawal', 'opening_balance' => 'Opening balance', diff --git a/resources/views/v2/index.twig b/resources/views/v2/index.twig index 3464da5d40..1e2f7bbf8a 100644 --- a/resources/views/v2/index.twig +++ b/resources/views/v2/index.twig @@ -1,6 +1,8 @@ {% extends "./layout/default" %} {% block content %}
+ +
@@ -73,6 +75,7 @@
+
diff --git a/resources/views/v2/layout/default.twig b/resources/views/v2/layout/default.twig index 3e149284ab..c05f8a6610 100644 --- a/resources/views/v2/layout/default.twig +++ b/resources/views/v2/layout/default.twig @@ -20,8 +20,8 @@ Firefly III - - + +