From f653cd37147e60cdfb2d8eac22bcd50e94be4581 Mon Sep 17 00:00:00 2001 From: misabiko Date: Tue, 14 Jul 2020 21:37:25 -0400 Subject: [PATCH] Fixed pairing sb-admin-2 to pug-bootstrap --- .gitignore | 3 +- dist/App.js | 36 --------- dist/App.js.map | 1 - dist/server.js | 44 ---------- dist/server.js.map | 1 - package-lock.json | 81 +++++++++++++++++++ package.json | 1 + src/App.ts | 2 + views/index.pug | 8 +- views/sb-admin-2/blank.pug | 20 ++--- views/sb-admin-2/pug_inc/header/user-info.pug | 22 ++--- views/sb-admin-2/pug_inc/link.pug | 6 +- views/sb-admin-2/pug_inc/scripts.pug | 2 +- views/sb-admin-2/pug_inc/sidebar.pug | 2 +- 14 files changed, 118 insertions(+), 111 deletions(-) delete mode 100644 dist/App.js delete mode 100644 dist/App.js.map delete mode 100644 dist/server.js delete mode 100644 dist/server.js.map diff --git a/.gitignore b/.gitignore index cbb0b84..365034f 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ vendor/ node_modules/ npm-debug.log -.idea/ \ No newline at end of file +.idea/ +dist/ \ No newline at end of file diff --git a/dist/App.js b/dist/App.js deleted file mode 100644 index 7a3c436..0000000 --- a/dist/App.js +++ /dev/null @@ -1,36 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const express = require("express"); -const logger = require("morgan"); -const bodyParser = require("body-parser"); -//import * as ExpressSession from 'express-session'; -// Creates and configures an ExpressJS web server. -class App { - //Run configuration methods on the Express instance. - constructor() { - this.expressApp = express(); - this.middleware(); - this.routes(); - this.expressApp.set('view engine', 'pug'); - } - // Configure Express middleware. - middleware() { - this.expressApp.use(logger('dev')); - this.expressApp.use(bodyParser.json()); - this.expressApp.use(bodyParser.urlencoded({ extended: false })); - /*this.expressApp.use(ExpressSession( - { - secret: 'My Secret Key', - resave: false, - saveUninitialized: true - }));*/ - } - // Configure API endpoints. - routes() { - let router = express.Router(); - router.get('/', (req, res) => res.render('index')); - this.expressApp.use('/', router); - } -} -exports.default = new App().expressApp; -//# sourceMappingURL=App.js.map \ No newline at end of file diff --git a/dist/App.js.map b/dist/App.js.map deleted file mode 100644 index 2e74015..0000000 --- a/dist/App.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"App.js","sourceRoot":"","sources":["../src/App.ts"],"names":[],"mappings":";;AAAA,mCAAmC;AACnC,iCAAiC;AACjC,0CAA0C;AAC1C,oDAAoD;AAEpD,kDAAkD;AAClD,MAAM,GAAG;IAGR,oDAAoD;IACpD;QACC,IAAI,CAAC,UAAU,GAAG,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IAC3C,CAAC;IAED,gCAAgC;IACxB,UAAU;QACjB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACnC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAC,QAAQ,EAAE,KAAK,EAAC,CAAC,CAAC,CAAC;QAC9D;;;;;kBAKO;IACR,CAAC;IAED,2BAA2B;IACnB,MAAM;QACb,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QAE9B,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAEnD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAClC,CAAC;CACD;AAED,kBAAe,IAAI,GAAG,EAAE,CAAC,UAAU,CAAC"} \ No newline at end of file diff --git a/dist/server.js b/dist/server.js deleted file mode 100644 index 7ae9452..0000000 --- a/dist/server.js +++ /dev/null @@ -1,44 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const http = require("http"); -const debug = require("debug"); -const App_1 = require("./App"); -debug('ts-express:server'); -const port = normalizePort(process.env.PORT || 3000); -App_1.default.set('port', port); -const server = http.createServer(App_1.default); -server.listen(port); -server.on('error', onError); -server.on('listening', onListening); -function normalizePort(val) { - let port = (typeof val === 'string') ? parseInt(val, 10) : val; - if (isNaN(port)) - return val; - else if (port >= 0) - return port; - else - return false; -} -function onError(error) { - if (error.syscall !== 'listen') - throw error; - const bind = (typeof port === 'string') ? 'Pipe ' + port : 'Port ' + port; - switch (error.code) { - case 'EACCES': - console.error(`${bind} requires elevated privileges`); - process.exit(1); - break; - case 'EADDRINUSE': - console.error(`${bind} is already in use`); - process.exit(1); - break; - default: - throw error; - } -} -function onListening() { - let addr = server.address(); - let bind = (typeof addr === 'string') ? `pipe ${addr}` : `port ${addr.port}`; - debug(`Listening on ${bind}`); -} -//# sourceMappingURL=server.js.map \ No newline at end of file diff --git a/dist/server.js.map b/dist/server.js.map deleted file mode 100644 index 2292220..0000000 --- a/dist/server.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";;AAAA,6BAA6B;AAC7B,+BAA+B;AAE/B,+BAAwB;AAExB,KAAK,CAAC,mBAAmB,CAAC,CAAC;AAE3B,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;AACrD,aAAG,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAEtB,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,aAAG,CAAC,CAAC;AACtC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACpB,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC5B,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AAEpC,SAAS,aAAa,CAAC,GAAkB;IACxC,IAAI,IAAI,GAAW,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACvE,IAAI,KAAK,CAAC,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC;SACvB,IAAI,IAAI,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;;QAC3B,OAAO,KAAK,CAAC;AACnB,CAAC;AAED,SAAS,OAAO,CAAC,KAA4B;IAC5C,IAAI,KAAK,CAAC,OAAO,KAAK,QAAQ;QAAE,MAAM,KAAK,CAAC;IAE5C,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;IAC1E,QAAO,KAAK,CAAC,IAAI,EAAE;QAClB,KAAK,QAAQ;YACZ,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,+BAA+B,CAAC,CAAC;YACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChB,MAAM;QACP,KAAK,YAAY;YAChB,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,oBAAoB,CAAC,CAAC;YAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChB,MAAM;QACP;YACC,MAAM,KAAK,CAAC;KACb;AACF,CAAC;AAED,SAAS,WAAW;IACnB,IAAI,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;IAC5B,IAAI,IAAI,GAAG,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;IAC7E,KAAK,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC;AAC/B,CAAC"} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 079eaa4..18a0480 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,6 +24,11 @@ "to-fast-properties": "^2.0.0" } }, + "@fortawesome/fontawesome-free": { + "version": "5.13.1", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-5.13.1.tgz", + "integrity": "sha512-D819f34FLHeBN/4xvw0HR0u7U2G7RqjPSggXqf7LktsxWQ48VAfGwvMrhcVuaZV2fF069c/619RdgCCms0DHhw==" + }, "@types/babel-types": { "version": "7.0.8", "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-7.0.8.tgz", @@ -222,6 +227,11 @@ "type-is": "~1.6.17" } }, + "bootstrap": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.5.0.tgz", + "integrity": "sha512-Z93QoXvodoVslA+PWNdk23Hze4RBYIkpb5h8I2HY2Tu2h7A0LpAgLcyrhrSUyo2/Oxm2l1fRZPs1e5hnxnliXA==" + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -304,6 +314,32 @@ "is-regex": "^1.0.3" } }, + "chart.js": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-2.9.3.tgz", + "integrity": "sha512-+2jlOobSk52c1VU6fzkh3UwqHMdSlgH1xFv9FKMqHiNCpXsGPQa/+81AFa+i3jZ253Mq9aAycPwDjnn1XbRNNw==", + "requires": { + "chartjs-color": "^2.1.0", + "moment": "^2.10.2" + } + }, + "chartjs-color": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chartjs-color/-/chartjs-color-2.4.1.tgz", + "integrity": "sha512-haqOg1+Yebys/Ts/9bLo/BqUcONQOdr/hoEr2LLTRl6C5LXctUdHxsCYfvQVg5JIxITrfCNUDr4ntqmQk9+/0w==", + "requires": { + "chartjs-color-string": "^0.6.0", + "color-convert": "^1.9.3" + } + }, + "chartjs-color-string": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/chartjs-color-string/-/chartjs-color-string-0.6.0.tgz", + "integrity": "sha512-TIB5OKn1hPJvO7JcteW4WY/63v6KwEdt6udfnDE9iCAZgy+V4SrbSxoIbTw/xkUIapjEI4ExGtD0+6D3KyFd7A==", + "requires": { + "color-name": "^1.0.0" + } + }, "check-error": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", @@ -422,6 +458,23 @@ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==" }, + "datatables.net": { + "version": "1.10.21", + "resolved": "https://registry.npmjs.org/datatables.net/-/datatables.net-1.10.21.tgz", + "integrity": "sha512-/bSZtxmf3GTpYcvEmwZ8q26I1yhSx8qklR2B+s1K8+/51UW/zc2zTYwJMqr/Z+iCYixAc00ildj4g2x0Qamolw==", + "requires": { + "jquery": ">=1.7" + } + }, + "datatables.net-bs4": { + "version": "1.10.21", + "resolved": "https://registry.npmjs.org/datatables.net-bs4/-/datatables.net-bs4-1.10.21.tgz", + "integrity": "sha512-F9zabYw8ZLXfjvj2S+BdnbkEUsL48bJwWxQFrA47cOXrIvsMhW8nmqPZcIMK4ko3k1i74nbpWLO1t+vueQKoXQ==", + "requires": { + "datatables.net": "1.10.21", + "jquery": ">=1.7" + } + }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -878,6 +931,16 @@ "iterate-iterator": "^1.0.1" } }, + "jquery": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz", + "integrity": "sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg==" + }, + "jquery.easing": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jquery.easing/-/jquery.easing-1.4.1.tgz", + "integrity": "sha1-R5gsWDa9dY/UhJSSPEoQHvbpPjs=" + }, "js-stringify": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", @@ -1035,6 +1098,11 @@ } } }, + "moment": { + "version": "2.27.0", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.27.0.tgz", + "integrity": "sha512-al0MUK7cpIcglMv3YF13qSgdAIqxHTO7brRtaz3DlSULbqfazqkc5kEjNrLDOM7fsjshoFIihnU8snrP7zUvhQ==" + }, "morgan": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz", @@ -1626,6 +1694,19 @@ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" }, + "startbootstrap-sb-admin-2": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/startbootstrap-sb-admin-2/-/startbootstrap-sb-admin-2-4.1.1.tgz", + "integrity": "sha512-bhZb4YrtGnUdY5lZwf3q3uYFpc79KiKqUgHhn7S+xfblcpC7bcPSIKOqFqbahz9DbN+SQFU8kdNbUdN7AkbkaA==", + "requires": { + "@fortawesome/fontawesome-free": "5.13.1", + "bootstrap": "4.5.0", + "chart.js": "2.9.3", + "datatables.net-bs4": "1.10.21", + "jquery": "3.5.1", + "jquery.easing": "^1.4.1" + } + }, "statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", diff --git a/package.json b/package.json index 5ba40f2..f63624c 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ "morgan": "^1.10.0", "pug": "^3.0.0", "pug-bootstrap": "0.0.16", + "startbootstrap-sb-admin-2": "^4.1.1", "typescript": "^3.9.6" } } diff --git a/src/App.ts b/src/App.ts index 193bc1d..5184f16 100644 --- a/src/App.ts +++ b/src/App.ts @@ -13,6 +13,8 @@ class App { this.middleware(); this.routes(); this.expressApp.set('view engine', 'pug'); + this.expressApp.use('/sb-admin-2/css', express.static(__dirname + '/../node_modules/startbootstrap-sb-admin-2/css')); + this.expressApp.use('/sb-admin-2/js', express.static(__dirname + '/../node_modules/startbootstrap-sb-admin-2/js')); } // Configure Express middleware. diff --git a/views/index.pug b/views/index.pug index 6b238a0..c4e2ff2 100644 --- a/views/index.pug +++ b/views/index.pug @@ -1 +1,7 @@ -extends sb-admin-2/blank \ No newline at end of file +extends sb-admin-2/blank + +prepend sidebar + - const appName = 'Conjure Admin'; + +block sidebar_menu_buttons + +menu_button("Membres", "fa-chalkboard-teacher", "/members") \ No newline at end of file diff --git a/views/sb-admin-2/blank.pug b/views/sb-admin-2/blank.pug index 6cc9877..342ef21 100644 --- a/views/sb-admin-2/blank.pug +++ b/views/sb-admin-2/blank.pug @@ -1,19 +1,18 @@ //- blank.pug +extends ../../node_modules/pug-bootstrap/_bootstrap + include pug_inc/mixins/mixins include pug_inc/mixins/cards include pug_inc/mixins/buttons -include ../mixins -doctype html +append head + include pug_inc/meta + include pug_inc/link -html - head - include pug_inc/meta - include pug_inc/link + include pug_inc/ga_tracking - include pug_inc/ga_tracking - - body#page-top +block body + #page-top #wrapper block sidebar include pug_inc/sidebar @@ -26,4 +25,5 @@ html include pug_inc/logout_modal - include pug_inc/scripts +append scripts + include pug_inc/scripts \ No newline at end of file diff --git a/views/sb-admin-2/pug_inc/header/user-info.pug b/views/sb-admin-2/pug_inc/header/user-info.pug index 9edfcbc..ae79358 100644 --- a/views/sb-admin-2/pug_inc/header/user-info.pug +++ b/views/sb-admin-2/pug_inc/header/user-info.pug @@ -1,19 +1,19 @@ li.nav-item.dropdown.no-arrow a#userDropdown.nav-link.dropdown-toggle(href='#' role='button' data-toggle='dropdown' aria-haspopup='true' aria-expanded='false') - span.mr-2.d-none.d-lg-inline.text-gray-600.small #{user.prenom} #{user.nom} + span.mr-2.d-none.d-lg-inline.text-gray-600.small William Tremblay img.img-profile.rounded-circle(src='https://source.unsplash.com/QAB-WJcbgJk/60x60') // Dropdown - User Information .dropdown-menu.dropdown-menu-right.shadow.animated--grow-in(aria-labelledby='userDropdown') - //a.dropdown-item(href='#') - // i.fas.fa-user.fa-sm.fa-fw.mr-2.text-gray-400 - // | Profile - //a.dropdown-item(href='#') - // i.fas.fa-cogs.fa-sm.fa-fw.mr-2.text-gray-400 - // | Settings - //a.dropdown-item(href='#') - // i.fas.fa-list.fa-sm.fa-fw.mr-2.text-gray-400 - // | Activity Log - //.dropdown-divider + a.dropdown-item(href='#') + i.fas.fa-user.fa-sm.fa-fw.mr-2.text-gray-400 + | Profile + a.dropdown-item(href='#') + i.fas.fa-cogs.fa-sm.fa-fw.mr-2.text-gray-400 + | Settings + a.dropdown-item(href='#') + i.fas.fa-list.fa-sm.fa-fw.mr-2.text-gray-400 + | Activity Log + .dropdown-divider a.dropdown-item(href='#' data-toggle='modal' data-target='#logoutModal') i.fas.fa-sign-out-alt.fa-sm.fa-fw.mr-2.text-gray-400 | Logout \ No newline at end of file diff --git a/views/sb-admin-2/pug_inc/link.pug b/views/sb-admin-2/pug_inc/link.pug index e385cc6..8a5a812 100644 --- a/views/sb-admin-2/pug_inc/link.pug +++ b/views/sb-admin-2/pug_inc/link.pug @@ -5,8 +5,6 @@ link(href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/5.9.0/css/all.min.css" link(href="//fonts.googleapis.com/css?family=Nunito:200,200i,300,300i,400,400i,600,600i,700,700i,800,800i,900,900i" rel="stylesheet") -link(href="/css/sb-admin-2.min.css" rel="stylesheet") +link(href="sb-admin-2/css/sb-admin-2.min.css" rel="stylesheet") -script(src='http://code.jquery.com/jquery-3.5.1.slim.min.js' integrity='sha256-4+XzXVhsDmqanXGHaHvgh1gMQKX40OUvDEBTu8JcmNs=' crossorigin='anonymous') -script(src='/lib/main.js') -link(href='/css/style.css' rel='stylesheet') \ No newline at end of file +script(src='http://code.jquery.com/jquery-3.5.1.slim.min.js' integrity='sha256-4+XzXVhsDmqanXGHaHvgh1gMQKX40OUvDEBTu8JcmNs=' crossorigin='anonymous') \ No newline at end of file diff --git a/views/sb-admin-2/pug_inc/scripts.pug b/views/sb-admin-2/pug_inc/scripts.pug index 662888c..50a6af6 100644 --- a/views/sb-admin-2/pug_inc/scripts.pug +++ b/views/sb-admin-2/pug_inc/scripts.pug @@ -7,4 +7,4 @@ script(src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.3.1/js/bootstra script(src="//cdnjs.cloudflare.com/ajax/libs/jquery-easing/1.4.1/jquery.easing.min.js") -script(src="/js/sb-admin-2.min.js") +script(src="sb-admin-2/js/sb-admin-2.min.js") diff --git a/views/sb-admin-2/pug_inc/sidebar.pug b/views/sb-admin-2/pug_inc/sidebar.pug index 125569b..e22f934 100644 --- a/views/sb-admin-2/pug_inc/sidebar.pug +++ b/views/sb-admin-2/pug_inc/sidebar.pug @@ -2,7 +2,7 @@ ul#accordionSidebar(class="navbar-nav bg-gradient-primary sidebar sidebar-dark accordion") - +sidebar_brand("SGA", "/") + +sidebar_brand(appName, "/") +sidebar_divider_my0