diff --git a/.github/workflows/build_base_images.yml b/.github/workflows/build_base_images.yml index e64cac59f..902888d43 100644 --- a/.github/workflows/build_base_images.yml +++ b/.github/workflows/build_base_images.yml @@ -26,10 +26,4 @@ jobs: username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - uses: actions/checkout@v2 - - run: | - # Required due to a buildx bug. - # See https://github.com/docker/buildx/issues/495#issuecomment-761562905 - docker run --rm --privileged multiarch/qemu-user-static --reset -p yes - docker buildx create --name multiarch --driver docker-container --use - docker buildx inspect --bootstrap - .ci/build_${{ matrix.os }}.base.sh + - run: scripts/build_and_push_base_images.sh diff --git a/apps/fz_http/assets/css/app.scss b/apps/fz_http/assets/css/app.scss index efda9bbe9..b86c176ad 100644 --- a/apps/fz_http/assets/css/app.scss +++ b/apps/fz_http/assets/css/app.scss @@ -10,3 +10,4 @@ $fa-font-path: "~@fortawesome/fontawesome-free/webfonts"; @import "~@fortawesome/fontawesome-free/scss/solid.scss"; @import "~@fortawesome/fontawesome-free/scss/regular.scss"; @import "~@fortawesome/fontawesome-free/scss/brands.scss"; +@import "~admin-one-bulma-dashboard/src/scss/main.scss"; diff --git a/apps/fz_http/assets/package-lock.json b/apps/fz_http/assets/package-lock.json index 7066192c6..d6a3d50dd 100644 --- a/apps/fz_http/assets/package-lock.json +++ b/apps/fz_http/assets/package-lock.json @@ -1348,6 +1348,11 @@ "integrity": "sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA==", "dev": true }, + "admin-one-bulma-dashboard": { + "version": "git+https://github.com/firezone/admin-one-bulma-dashboard.git#dbbeab13a6eb7f1a172439377f26abbaefa24921", + "from": "git+https://github.com/firezone/admin-one-bulma-dashboard.git", + "dev": true + }, "ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -1606,11 +1611,56 @@ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" }, "bulma": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/bulma/-/bulma-0.9.2.tgz", - "integrity": "sha512-e14EF+3VSZ488yL/lJH0tR8mFWiEQVCMi/BQUMi2TGMBOk+zrDg4wryuwm/+dRSHJw0gMawp2tsW7X1JYUCE3A==", + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/bulma/-/bulma-0.9.3.tgz", + "integrity": "sha512-0d7GNW1PY4ud8TWxdNcP6Cc8Bu7MxcntD/RRLGWuiw/s0a9P+XlH/6QoOIrmbj6o8WWJzJYhytiu9nFjTszk1g==", "dev": true }, + "bulma-checkbox": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/bulma-checkbox/-/bulma-checkbox-1.1.1.tgz", + "integrity": "sha512-16aTRbXQBCdfk8nrWSVJCasD28FudeVF+G+mZfMJc2N/xTcU4XXjzQ6Iya1neKOgXkXQMx9nJOH2n8H7LRztNg==", + "dev": true, + "requires": { + "bulma": "^0.9.0" + } + }, + "bulma-radio": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/bulma-radio/-/bulma-radio-1.1.1.tgz", + "integrity": "sha512-aIHuMbpBGyZYx8KxbQRdjIy/0M9WHWz5VyxMggwxmCadnN0gd7gC/G96WUy9mhaoIfo9yX/Cf8pKQNinKH+w7w==", + "dev": true, + "requires": { + "bulma": "^0.9.0" + } + }, + "bulma-responsive-tables": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/bulma-responsive-tables/-/bulma-responsive-tables-1.2.3.tgz", + "integrity": "sha512-3BMCFxqlfDytNEsLU/WXEJPaTI5YJFtTxrSPv40Fz37r2BpOgPkdIvaxP3E/mgAM1WzPfmgdi5U/vknglOzogg==", + "dev": true, + "requires": { + "bulma": "^0.9.0" + } + }, + "bulma-switch-control": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/bulma-switch-control/-/bulma-switch-control-1.1.1.tgz", + "integrity": "sha512-uvPhLeiip1P/JZf9nidbA+7cQmUYKzS5vVbzhEAUk0oz6H3hPhHDIef/rUwqig1veRUd7vXBZ1hOcsM9gLxv/A==", + "dev": true, + "requires": { + "bulma": "^0.9.0" + } + }, + "bulma-upload-control": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/bulma-upload-control/-/bulma-upload-control-1.2.0.tgz", + "integrity": "sha512-2raueVPVoG3KjHH+7Aok44nGSPIl76qzdkLKX/ziHAOwbiXBrlEYHXca8Hk0UDa0KElLiPT6Eb2Cvz+8FFUwBw==", + "dev": true, + "requires": { + "bulma": "^0.9.0" + } + }, "call-bind": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", @@ -1877,9 +1927,9 @@ "dev": true }, "css-loader": { - "version": "5.2.6", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-5.2.6.tgz", - "integrity": "sha512-0wyN5vXMQZu6BvjbrPdUJvkCzGEO24HC7IS7nW4llc6BBFC+zwR9CKtYGv63Puzsg10L/o12inMY5/2ByzfD6w==", + "version": "5.2.7", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-5.2.7.tgz", + "integrity": "sha512-Q7mOvpBNBG7YrVGMxRxcBJZFL75o+cH2abNASdibkj/fffYD8qWbInZrD0S9ccI6vZclF3DsHE7njGlLtaHbhg==", "dev": true, "requires": { "icss-utils": "^5.1.0", @@ -1906,12 +1956,12 @@ } }, "schema-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", - "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.0.tgz", + "integrity": "sha512-tTEaeYkyIhEZ9uWgAjDerWov3T9MgX8dhhy2r0IGeeX4W8ngtGl1++dUve/RUqzuaASSh7shwCDJjEzthxki8w==", "dev": true, "requires": { - "@types/json-schema": "^7.0.6", + "@types/json-schema": "^7.0.7", "ajv": "^6.12.5", "ajv-keywords": "^3.5.2" } @@ -3949,9 +3999,9 @@ "dev": true }, "sass": { - "version": "1.35.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.35.1.tgz", - "integrity": "sha512-oCisuQJstxMcacOPmxLNiLlj4cUyN2+8xJnG7VanRoh2GOLr9RqkvI4AxA4a6LHVg/rsu+PmxXeGhrdSF9jCiQ==", + "version": "1.35.2", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.35.2.tgz", + "integrity": "sha512-jhO5KAR+AMxCEwIH3v+4zbB2WB0z67V1X0jbapfVwQQdjHZUGUyukpnoM6+iCMfsIUC016w9OPKQ5jrNOS9uXw==", "dev": true, "requires": { "chokidar": ">=3.0.0 <4.0.0" diff --git a/apps/fz_http/assets/package.json b/apps/fz_http/assets/package.json index 21ae8838a..23173b13d 100644 --- a/apps/fz_http/assets/package.json +++ b/apps/fz_http/assets/package.json @@ -21,17 +21,23 @@ "@babel/core": "^7.14.0", "@babel/preset-env": "^7.14.0", "@fortawesome/fontawesome-free": "^5.15.3", + "admin-one-bulma-dashboard": "git+https://github.com/firezone/admin-one-bulma-dashboard.git", "autoprefixer": "^9.8.6", "babel-loader": "^8.2.2", - "bulma": "^0.9.2", + "bulma": "^0.9.3", + "bulma-checkbox": "^1.1.1", + "bulma-radio": "^1.1.1", + "bulma-responsive-tables": "^1.2.3", + "bulma-switch-control": "^1.1.1", + "bulma-upload-control": "^1.2.0", "copy-webpack-plugin": "^8.1.1", - "css-loader": "^5.2.6", + "css-loader": "^5.2.7", "css-minimizer-webpack-plugin": "^3.0.1", "file-loader": "^6.2.0", "mini-css-extract-plugin": "^1.5.0", "postcss": "^8.2.15", "postcss-loader": "^3.0.0", - "sass": "^1.32.8", + "sass": "^1.35.2", "sass-loader": "^11.0.1", "source-map": "^0.7.3", "url-loader": "^4.1.1", diff --git a/apps/fz_http/assets/webpack.config.js b/apps/fz_http/assets/webpack.config.js index 00bb1ea41..14fe93b52 100644 --- a/apps/fz_http/assets/webpack.config.js +++ b/apps/fz_http/assets/webpack.config.js @@ -15,7 +15,8 @@ module.exports = (env, options) => ({ './js/app.js': glob.sync('./vendor/**/*.js').concat([ // Local JS files to include in the bundle './js/hooks.js', - './js/app.js' + './js/app.js', + './node_modules/admin-one-bulma-dashboard/src/js/main.js' ]) }, output: { diff --git a/apps/fz_http/lib/fz_http_web/controllers/admin_controller.ex b/apps/fz_http/lib/fz_http_web/controllers/admin_controller.ex new file mode 100644 index 000000000..034e745f9 --- /dev/null +++ b/apps/fz_http/lib/fz_http_web/controllers/admin_controller.ex @@ -0,0 +1,12 @@ +defmodule FzHttpWeb.AdminController do + @moduledoc """ + Testing the admin layout + """ + use FzHttpWeb, :controller + + plug :put_root_layout, "admin.html" + + def index(conn, _params) do + render(conn, "index.html") + end +end diff --git a/apps/fz_http/lib/fz_http_web/router.ex b/apps/fz_http/lib/fz_http_web/router.ex index 9c6d9309b..e4acad942 100644 --- a/apps/fz_http/lib/fz_http_web/router.ex +++ b/apps/fz_http/lib/fz_http_web/router.ex @@ -26,6 +26,8 @@ defmodule FzHttpWeb.Router do scope "/", FzHttpWeb do pipe_through :browser + get "/admin", AdminController, :index + live "/sign_in", SessionLive.New, :new live "/sign_up", UserLive.New, :new live "/account", AccountLive.Show, :show diff --git a/apps/fz_http/lib/fz_http_web/templates/admin/index.html.eex b/apps/fz_http/lib/fz_http_web/templates/admin/index.html.eex new file mode 100644 index 000000000..d0e334007 --- /dev/null +++ b/apps/fz_http/lib/fz_http_web/templates/admin/index.html.eex @@ -0,0 +1 @@ +Foobar diff --git a/apps/fz_http/lib/fz_http_web/templates/layout/admin.html.leex b/apps/fz_http/lib/fz_http_web/templates/layout/admin.html.leex new file mode 100644 index 000000000..dc9942f8b --- /dev/null +++ b/apps/fz_http/lib/fz_http_web/templates/layout/admin.html.leex @@ -0,0 +1,666 @@ + + + + + + + + <%= csrf_meta_tag() %> + <%= live_title_tag assigns[:page_title] || "FireZone" %> + "/> + + + + + + + +
+ + +
+
+
+
+
    +
  • Admin
  • +
  • Dashboard
  • +
+
+
+ +
+
+
+
+
+
+

+ Dashboard +

+
+ +
+
+
+
+
+
+
+
+
+
+

+ Clients +

+

+ 512 +

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

+ Sales +

+

+ $7,770 +

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

+ Performance +

+

+ 256% +

+
+
+
+
+
+
+
+
+
+
+
+
+
+

+ + Performance +

+ + + +
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+

+ + Clients +

+ + + +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameCompanyCityProgressCreated
+
+ +
+
Rebecca BauchDaugherty-DanielSouth Cory + 79 + + Oct 25, 2020 + +
+ + +
+
+
+ +
+
Felicita YundtJohns-WeissnatEast Ariel + 67 + + Jan 8, 2020 + +
+ + +
+
+
+ +
+
Mr. Larry Satterfield VHyatt LtdWindlerburgh + 16 + + Dec 18, 2020 + +
+ + +
+
+
+ +
+
Mr. Broderick KubKshlerin, Bauch and ErnserNew Kirstenport + 71 + + Sep 13, 2020 + +
+ + +
+
+
+ +
+
Barry WeberSchulist, Mosciski and HeidenreichEast Violettestad + 80 + + Jul 24, 2020 + +
+ + +
+
+
+ +
+
Bert Kautzer MDGerhold and SonsMayeport + 62 + + Mar 30, 2020 + +
+ + +
+
+
+ +
+
Lonzo SteuberSkiles LtdMarilouville + 17 + + Feb 12, 2020 + +
+ + +
+
+
+ +
+
Jonathon HahnFlatley LtdBilliemouth + 74 + + Dec 30, 2020 + +
+ + +
+
+
+ +
+
Ryley WuckertHeller-LittleEmeraldtown + 54 + + Jun 28, 2020 + +
+ + +
+
+
+ +
+
Sienna HayesConn, Jerde and DouglasJonathanfort + 55 + + Mar 7, 2020 + +
+ + +
+
+
+
+
+
+
+
+ + + +
+
+
+
+
+ Page 1 of 3 +
+
+
+
+
+
+
+
+ +
+ + + + + + + diff --git a/apps/fz_http/lib/fz_http_web/views/admin_view.ex b/apps/fz_http/lib/fz_http_web/views/admin_view.ex new file mode 100644 index 000000000..77f6ff492 --- /dev/null +++ b/apps/fz_http/lib/fz_http_web/views/admin_view.ex @@ -0,0 +1,3 @@ +defmodule FzHttpWeb.AdminView do + use FzHttpWeb, :view +end diff --git a/pkg/asdf.sh b/pkg/asdf.sh deleted file mode 100755 index d7638383a..000000000 --- a/pkg/asdf.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env bash -set -e - -asdf plugin-add erlang -asdf plugin-add elixir -asdf plugin-add nodejs - -asdf install