diff --git a/frontend/package.json b/frontend/package.json index ed322fa..8d37fdc 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -21,5 +21,8 @@ "react-dom": "18.2.0", "react-icons": "4.10.1", "swr": "2.2.0" + }, + "devDependencies": { + "sass": "1.63.6" } } diff --git a/frontend/pages/[slug]/index.js b/frontend/pages/[slug]/index.js index 7936908..043d343 100644 --- a/frontend/pages/[slug]/index.js +++ b/frontend/pages/[slug]/index.js @@ -31,7 +31,7 @@ export const getStaticProps = async ({ params: { slug } }) => { export default function Page(page) { return ( - + {page.title}
diff --git a/frontend/pages/_app.js b/frontend/pages/_app.js index 6fcf176..cddd76a 100644 --- a/frontend/pages/_app.js +++ b/frontend/pages/_app.js @@ -2,6 +2,7 @@ import App from 'next/app' import { ChakraProvider } from '@chakra-ui/react' import Layout from '~/components/layout' import theme from '~/src/theme' +import '~/src/style.scss' export default function MyApp({ Component, pageProps, globals, menus }) { return ( diff --git a/frontend/pages/index.js b/frontend/pages/index.js index 8c3433f..e5bd243 100644 --- a/frontend/pages/index.js +++ b/frontend/pages/index.js @@ -1,7 +1,9 @@ -export default function Home() { - return ( -
-
{JSON.stringify(new Date().toISOString().split('T').join(' ').substring(0, 16), null, 2)}
-
- ) +import Page, { getStaticProps as gsp } from '~/pages/[slug]' + +export const getStaticProps = async () => { + return gsp({ params: { slug: 'home' } }) +} + +export default function Home(props) { + return } diff --git a/frontend/pages/vendors/[slug]/index.js b/frontend/pages/vendors/[slug]/index.js index 1626e6e..0752baf 100644 --- a/frontend/pages/vendors/[slug]/index.js +++ b/frontend/pages/vendors/[slug]/index.js @@ -39,7 +39,7 @@ export const getStaticProps = async ({ params: { slug } }) => { export default function VendorPage(vendor) { return ( - <> + {vendor.name} - + @@ -168,6 +157,6 @@ export default function VendorPage(vendor) { )} - + ) } diff --git a/frontend/pages/vendors/index.js b/frontend/pages/vendors/index.js index ccca324..bb4b1bc 100644 --- a/frontend/pages/vendors/index.js +++ b/frontend/pages/vendors/index.js @@ -134,7 +134,7 @@ export default function VendorsPage({ categories }) { } return ( - <> + Vendors {isValidating && } @@ -302,6 +302,6 @@ export default function VendorsPage({ categories }) { )} - + ) } diff --git a/frontend/pnpm-lock.yaml b/frontend/pnpm-lock.yaml index 3a450d2..0f10c6c 100644 --- a/frontend/pnpm-lock.yaml +++ b/frontend/pnpm-lock.yaml @@ -28,7 +28,7 @@ dependencies: version: 1.2.1 next: specifier: 13.4.9 - version: 13.4.9(react-dom@18.2.0)(react@18.2.0) + version: 13.4.9(react-dom@18.2.0)(react@18.2.0)(sass@1.63.6) react: specifier: 18.2.0 version: 18.2.0 @@ -42,6 +42,11 @@ dependencies: specifier: 2.2.0 version: 2.2.0(react@18.2.0) +devDependencies: + sass: + specifier: 1.63.6 + version: 1.63.6 + packages: /@babel/code-frame@7.22.5: @@ -500,7 +505,7 @@ packages: '@chakra-ui/react': 2.7.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(framer-motion@10.12.18)(react-dom@18.2.0)(react@18.2.0) '@emotion/cache': 11.11.0 '@emotion/react': 11.11.1(react@18.2.0) - next: 13.4.9(react-dom@18.2.0)(react@18.2.0) + next: 13.4.9(react-dom@18.2.0)(react@18.2.0)(sass@1.63.6) react: 18.2.0 dev: false @@ -1476,6 +1481,13 @@ packages: color-convert: 1.9.3 dev: false + /anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + /aria-hidden@1.2.3: resolution: {integrity: sha512-xcLxITLe2HYa1cnYnwCjkOO1PqUHQpozB8x9AR0OgWN2woOBi5kSDVxKfd0b7sb1hw5qFeJhXm9H1nu3xSfLeQ==} engines: {node: '>=10'} @@ -1492,6 +1504,16 @@ packages: resolve: 1.22.2 dev: false + /binary-extensions@2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + + /braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + /busboy@1.6.0: resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} engines: {node: '>=10.16.0'} @@ -1517,6 +1539,20 @@ packages: supports-color: 5.5.0 dev: false + /chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.2 + /client-only@0.0.1: resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} dev: false @@ -1595,6 +1631,12 @@ packages: engines: {node: '>=10'} dev: false + /fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + /find-root@1.1.0: resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} dev: false @@ -1630,6 +1672,13 @@ packages: tslib: 2.4.0 dev: false + /fsevents@2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + optional: true + /function-bind@1.1.1: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} dev: false @@ -1639,6 +1688,12 @@ packages: engines: {node: '>=6'} dev: false + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + /glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} dev: false @@ -1665,6 +1720,9 @@ packages: react-is: 16.13.1 dev: false + /immutable@4.3.0: + resolution: {integrity: sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==} + /import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} @@ -1683,12 +1741,32 @@ packages: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} dev: false + /is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.2.0 + /is-core-module@2.12.1: resolution: {integrity: sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==} dependencies: has: 1.0.3 dev: false + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} dev: false @@ -1718,7 +1796,7 @@ packages: hasBin: true dev: false - /next@13.4.9(react-dom@18.2.0)(react@18.2.0): + /next@13.4.9(react-dom@18.2.0)(react@18.2.0)(sass@1.63.6): resolution: {integrity: sha512-vtefFm/BWIi/eWOqf1GsmKG3cjKw1k3LjuefKRcL3iiLl3zWzFdPG3as6xtxrGO6gwTzzaO1ktL4oiHt/uvTjA==} engines: {node: '>=16.8.0'} hasBin: true @@ -1743,6 +1821,7 @@ packages: postcss: 8.4.14 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) + sass: 1.63.6 styled-jsx: 5.1.1(react@18.2.0) watchpack: 2.4.0 zod: 3.21.4 @@ -1761,6 +1840,10 @@ packages: - babel-plugin-macros dev: false + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + /object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} @@ -1796,6 +1879,10 @@ packages: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} dev: false + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + /postcss@8.4.14: resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==} engines: {node: ^10 || ^12 || >=14} @@ -1922,6 +2009,12 @@ packages: loose-envify: 1.4.0 dev: false + /readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.1 + /regenerator-runtime@0.13.11: resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} dev: false @@ -1940,6 +2033,15 @@ packages: supports-preserve-symlinks-flag: 1.0.0 dev: false + /sass@1.63.6: + resolution: {integrity: sha512-MJuxGMHzaOW7ipp+1KdELtqKbfAWbH7OLIdoSMnVe3EXPMTmxTmlaZDCTsgIpPCs3w99lLo9/zDKkOrJuT5byw==} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + chokidar: 3.5.3 + immutable: 4.3.0 + source-map-js: 1.0.2 + /scheduler@0.23.0: resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} dependencies: @@ -1949,7 +2051,6 @@ packages: /source-map-js@1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} - dev: false /source-map@0.5.7: resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} @@ -2012,6 +2113,12 @@ packages: engines: {node: '>=4'} dev: false + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + /toggle-selection@1.0.6: resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} dev: false diff --git a/frontend/src/style.scss b/frontend/src/style.scss new file mode 100644 index 0000000..47acc37 --- /dev/null +++ b/frontend/src/style.scss @@ -0,0 +1,29 @@ +.page { + + h1, + h2, + h3, + h4, + h5 { + font-family: var(--chakra-fonts-heading); + font-weight: var(--chakra-fontWeights-bold); + margin-top: var(--chakra-space-6); + margin-bottom: var(--chakra-space-1); + } + + + ul { + margin-left: 2rem; + } +} + +.vendor { + + h5 { + font-size: var(--chakra-fontSizes-xl); + font-family: var(--chakra-fonts-heading); + font-weight: var(--chakra-fontWeights-bold); + margin-top: var(--chakra-space-6); + margin-bottom: var(--chakra-space-1); + } +} diff --git a/schema/dump.sql b/schema/dump.sql index 313593c..3f5bea2 100644 --- a/schema/dump.sql +++ b/schema/dump.sql @@ -654,7 +654,6 @@ INSERT INTO directus_fields VALUES(45,'globals','id','uuid','input',NULL,NULL,NU INSERT INTO directus_fields VALUES(46,'globals','site_name',NULL,'input',NULL,NULL,NULL,0,0,NULL,'full',NULL,NULL,NULL,0,NULL,NULL,NULL); INSERT INTO directus_fields VALUES(47,'globals','meta_title',NULL,'input',NULL,NULL,NULL,0,0,NULL,'full',NULL,NULL,NULL,0,NULL,NULL,NULL); INSERT INTO directus_fields VALUES(48,'globals','meta_description',NULL,'input',NULL,NULL,NULL,0,0,NULL,'full',NULL,NULL,NULL,0,NULL,NULL,NULL); -INSERT INTO directus_fields VALUES(50,'pages','show_in','cast-json','select-multiple-checkbox','{"choices":[{"text":"Main menu","value":"MAIN_MENU"},{"text":"Footer","value":"FOOTER"}]}','labels',NULL,0,0,NULL,'full',NULL,NULL,NULL,0,NULL,NULL,NULL); INSERT INTO directus_fields VALUES(51,'globals','copyright',NULL,'input',NULL,NULL,NULL,0,0,NULL,'full',NULL,NULL,NULL,0,NULL,NULL,NULL); INSERT INTO directus_fields VALUES(52,'menus','id',NULL,'input',NULL,NULL,NULL,0,0,NULL,'full',NULL,NULL,NULL,0,NULL,NULL,NULL); INSERT INTO directus_fields VALUES(53,'menu_items','id','uuid','input',NULL,NULL,NULL,1,1,1,'full',NULL,NULL,NULL,0,NULL,NULL,NULL); @@ -686,7 +685,7 @@ INSERT INTO directus_roles VALUES('067808bd-7c13-40be-8c11-9ba654b79465','Admini CREATE TABLE `directus_shares` (`id` char(36) not null, `name` varchar(255), `collection` varchar(64), `item` varchar(255), `role` char(36), `password` varchar(255), `user_created` char(36), `date_created` datetime default CURRENT_TIMESTAMP, `date_start` datetime null default null, `date_end` datetime null default null, `times_used` integer default '0', `max_uses` integer, foreign key(`collection`) references `directus_collections`(`collection`) on delete CASCADE, foreign key(`role`) references `directus_roles`(`id`) on delete CASCADE, foreign key(`user_created`) references `directus_users`(`id`) on delete SET NULL, primary key (`id`)); CREATE TABLE IF NOT EXISTS "directus_sessions" (`token` varchar(64) NOT NULL, `user` char(36), `expires` datetime NOT NULL, `ip` varchar(255), `user_agent` varchar(255), `share` char(36), `origin` varchar(255) null, PRIMARY KEY (`token`), FOREIGN KEY (`user`) REFERENCES `directus_users` (`id`) ON DELETE CASCADE, FOREIGN KEY (`share`) REFERENCES `directus_shares` (`id`) ON DELETE CASCADE); CREATE TABLE IF NOT EXISTS "directus_users" (`id` char(36) NOT NULL, `first_name` varchar(50), `last_name` varchar(50), `email` varchar(128), `password` varchar(255), `location` varchar(255), `title` varchar(50), `description` text, `tags` json, `avatar` char(36), `language` varchar(255) DEFAULT null, `theme` varchar(20) DEFAULT 'auto', `tfa_secret` varchar(255), `status` varchar(16) NOT NULL DEFAULT 'active', `role` char(36), `token` varchar(255), `last_access` datetime, `last_page` varchar(255), `provider` varchar(128) NOT NULL DEFAULT 'default', `external_identifier` varchar(255), `auth_data` json, `email_notifications` boolean DEFAULT '1', PRIMARY KEY (`id`), FOREIGN KEY (`role`) REFERENCES `directus_roles` (`id`) ON DELETE SET NULL); -INSERT INTO directus_users VALUES('f9df4549-e9e6-4b67-a0bd-7e4aa657bff6',NULL,NULL,'okram@civokram.com','$argon2id$v=19$m=65536,t=3,p=4$rk0X9HITfk7OIfvEjOrbew$Q4wUp0tjs42ocHPwVPzI3dksy+JKWzQzO5a3gqOwDg8',NULL,NULL,NULL,NULL,NULL,NULL,'auto',NULL,'active','067808bd-7c13-40be-8c11-9ba654b79465',NULL,1688914421307,'/content/categories','default',NULL,NULL,1); +INSERT INTO directus_users VALUES('f9df4549-e9e6-4b67-a0bd-7e4aa657bff6',NULL,NULL,'okram@civokram.com','$argon2id$v=19$m=65536,t=3,p=4$rk0X9HITfk7OIfvEjOrbew$Q4wUp0tjs42ocHPwVPzI3dksy+JKWzQzO5a3gqOwDg8',NULL,NULL,NULL,NULL,NULL,NULL,'auto',NULL,'active','067808bd-7c13-40be-8c11-9ba654b79465',NULL,1688921891473,'/content/pages','default',NULL,NULL,1); CREATE TABLE IF NOT EXISTS "directus_panels" (`id` char(36) NOT NULL, `dashboard` char(36) NOT NULL, `name` varchar(255), `icon` varchar(30) DEFAULT null, `color` varchar(10), `show_header` boolean NOT NULL DEFAULT '0', `note` text, `type` varchar(255) NOT NULL, `position_x` integer NOT NULL, `position_y` integer NOT NULL, `width` integer NOT NULL, `height` integer NOT NULL, `options` json, `date_created` datetime DEFAULT CURRENT_TIMESTAMP, `user_created` char(36), FOREIGN KEY (`dashboard`) REFERENCES `directus_dashboards` (`id`) ON DELETE CASCADE, FOREIGN KEY (`user_created`) REFERENCES `directus_users` (`id`) ON DELETE SET NULL, PRIMARY KEY (`id`)); CREATE TABLE `directus_flows` (`id` char(36) not null, `name` varchar(255) not null, `icon` varchar(30), `color` varchar(255) null, `description` text, `status` varchar(255) not null default 'active', `trigger` varchar(255), `accountability` varchar(255) default 'all', `options` json, `operation` char(36), `date_created` datetime default CURRENT_TIMESTAMP, `user_created` char(36), foreign key(`user_created`) references `directus_users`(`id`) on delete SET NULL, primary key (`id`)); CREATE TABLE `directus_operations` (`id` char(36) not null, `name` varchar(255), `key` varchar(255) not null, `type` varchar(255) not null, `position_x` integer not null, `position_y` integer not null, `options` json, `resolve` char(36), `reject` char(36), `flow` char(36) not null, `date_created` datetime default CURRENT_TIMESTAMP, `user_created` char(36), foreign key(`resolve`) references `directus_operations`(`id`), foreign key(`reject`) references `directus_operations`(`id`), foreign key(`flow`) references `directus_flows`(`id`) on delete CASCADE, foreign key(`user_created`) references `directus_users`(`id`) on delete SET NULL, primary key (`id`)); @@ -694,12 +693,13 @@ CREATE TABLE IF NOT EXISTS "directus_activity" (`id` integer PRIMARY KEY AUTOINC CREATE TABLE IF NOT EXISTS "directus_notifications" (`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL, `timestamp` datetime DEFAULT CURRENT_TIMESTAMP, `status` varchar(255) DEFAULT 'inbox', `recipient` char(36) NOT NULL, `sender` char(36), `subject` varchar(255) NOT NULL, `message` text, `collection` varchar(64), `item` varchar(255), FOREIGN KEY (`recipient`) REFERENCES `directus_users` (`id`) ON DELETE CASCADE, FOREIGN KEY (`sender`) REFERENCES `directus_users` (`id`)); CREATE TABLE IF NOT EXISTS "directus_presets" (`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL, `bookmark` varchar(255), `user` char(36), `role` char(36), `collection` varchar(64), `search` varchar(100), `layout` varchar(100) DEFAULT 'tabular', `layout_query` json, `layout_options` json, `refresh_interval` integer, `filter` json, `icon` varchar(30) DEFAULT 'bookmark', `color` varchar(255) NULL, FOREIGN KEY (`user`) REFERENCES `directus_users` (`id`) ON DELETE CASCADE, FOREIGN KEY (`role`) REFERENCES `directus_roles` (`id`) ON DELETE CASCADE); INSERT INTO directus_presets VALUES(1,NULL,'f9df4549-e9e6-4b67-a0bd-7e4aa657bff6',NULL,'directus_files','','tabular','{"cards":{"sort":["-uploaded_on"],"limit":25,"page":1},"tabular":{"limit":25,"fields":["title","filename_download"],"page":1,"sort":["title"]}}','{"cards":{"icon":"insert_drive_file","title":"{{ title }}","subtitle":"{{ type }} • {{ filesize }}","size":3,"imageFit":"crop"},"tabular":{"spacing":"compact","widths":{"title":524,"filename_download":735}}}',NULL,NULL,'bookmark',NULL); -INSERT INTO directus_presets VALUES(2,NULL,'f9df4549-e9e6-4b67-a0bd-7e4aa657bff6',NULL,'pages',NULL,'tabular','{"tabular":{"page":1,"fields":["status","slug","title","content"]}}','{"tabular":{"widths":{"status":105,"content":350}}}',NULL,NULL,'bookmark',NULL); +INSERT INTO directus_presets VALUES(2,NULL,'f9df4549-e9e6-4b67-a0bd-7e4aa657bff6',NULL,'pages',NULL,'tabular','{"tabular":{"page":1,"fields":["status","slug","title","content"],"limit":25}}','{"tabular":{"widths":{"status":105,"content":350}}}',NULL,NULL,'bookmark',NULL); INSERT INTO directus_presets VALUES(3,NULL,'f9df4549-e9e6-4b67-a0bd-7e4aa657bff6',NULL,'directus_users',NULL,'cards','{"cards":{"sort":["email"],"limit":25,"page":1}}','{"cards":{"icon":"account_circle","title":"{{ first_name }} {{ last_name }}","subtitle":"{{ email }}","size":4}}',NULL,NULL,'bookmark',NULL); INSERT INTO directus_presets VALUES(4,NULL,'f9df4549-e9e6-4b67-a0bd-7e4aa657bff6',NULL,'directus_presets',NULL,NULL,'{"tabular":{"limit":25}}',NULL,NULL,NULL,'bookmark',NULL); INSERT INTO directus_presets VALUES(5,NULL,'f9df4549-e9e6-4b67-a0bd-7e4aa657bff6',NULL,'categories','',NULL,'{"tabular":{"limit":50,"page":1,"fields":["name","subcategories","vendors"],"sort":["name"]}}','{"tabular":{"widths":{"name":354,"subcategories":259}}}',NULL,'{"_and":[{"parent_id":{"_null":true}}]}','bookmark',NULL); INSERT INTO directus_presets VALUES(6,NULL,'f9df4549-e9e6-4b67-a0bd-7e4aa657bff6',NULL,'vendors',NULL,'tabular','{"tabular":{"page":1,"limit":25,"fields":["status","logo","name","city","state","country","categories"],"sort":["name"]},"cards":{"limit":25},"map":{"limit":1000}}','{"tabular":{"widths":{"status":104,"name":342},"spacing":"compact"},"map":{"cameraOptions":{"center":{"lng":0,"lat":2.842170943040401e-14},"zoom":1.2656150260264665,"bearing":0,"pitch":0,"bbox":[-199.74005157325573,-85.05112900000002,199.74005157325325,85.05112899999992]}}}',NULL,NULL,'bookmark',NULL); INSERT INTO directus_presets VALUES(8,NULL,'f9df4549-e9e6-4b67-a0bd-7e4aa657bff6',NULL,'menus',NULL,NULL,'{"tabular":{"limit":25,"fields":["id","menus_menu_items.menu_items_id.label"],"page":1}}','{"tabular":{"widths":{"menus_menu_items.menu_items_id.label":475}}}',NULL,NULL,'bookmark',NULL); +INSERT INTO directus_presets VALUES(9,NULL,'f9df4549-e9e6-4b67-a0bd-7e4aa657bff6',NULL,'directus_activity',NULL,'tabular','{"tabular":{"sort":["-timestamp"],"fields":["action","collection","timestamp","user"],"limit":25}}','{"tabular":{"widths":{"action":100,"collection":210,"timestamp":240,"user":240}}}',NULL,NULL,'bookmark',NULL); CREATE TABLE `directus_translations` (`id` char(36) not null, `language` varchar(255) not null, `key` varchar(255) not null, `value` text not null, primary key (`id`)); CREATE TABLE IF NOT EXISTS "directus_settings" (`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL, `project_name` varchar(100) NOT NULL DEFAULT 'Directus', `project_url` varchar(255), `project_color` varchar(50) DEFAULT null, `project_logo` char(36), `public_foreground` char(36), `public_background` char(36), `public_note` text, `auth_login_attempts` integer DEFAULT '25', `auth_password_policy` varchar(100), `storage_asset_transform` varchar(7) DEFAULT 'all', `storage_asset_presets` json, `custom_css` text, `storage_default_folder` char(36), `basemaps` json, `mapbox_key` varchar(255), `module_bar` json, `project_descriptor` varchar(100) NULL, `default_language` varchar(255) NOT NULL DEFAULT 'en-US', `custom_aspect_ratios` json, FOREIGN KEY (`project_logo`) REFERENCES `directus_files` (`id`), FOREIGN KEY (`public_foreground`) REFERENCES `directus_files` (`id`), FOREIGN KEY (`public_background`) REFERENCES `directus_files` (`id`), CONSTRAINT `directus_settings_storage_default_folder_foreign` FOREIGN KEY (`storage_default_folder`) REFERENCES `directus_folders` (`id`) ON DELETE SET NULL); INSERT INTO directus_settings VALUES(1,'Directus',NULL,NULL,NULL,NULL,NULL,NULL,25,NULL,'all','[{"key":"logo-card","fit":"inside","width":250,"height":100,"quality":80,"withoutEnlargement":false,"format":"auto","transforms":[["flatten",{"background":"rgb(255, 255, 255)"}]]},{"key":"logo-page","fit":"inside","width":400,"height":150,"quality":80,"withoutEnlargement":false,"format":"auto","transforms":[["flatten",{"background":"rgb(255, 255, 255)"}]]}]',NULL,NULL,NULL,NULL,'[{"type":"module","id":"content","enabled":true},{"type":"module","id":"users","enabled":true},{"type":"module","id":"files","enabled":true},{"type":"module","id":"insights","enabled":true},{"type":"module","id":"settings","enabled":true,"locked":true}]',NULL,'en-US',NULL); @@ -1738,9 +1738,6 @@ INSERT INTO vendors_categories VALUES(13401,'1a55773c-6140-4ba8-96ab-7b8fb21cb26 INSERT INTO vendors_categories VALUES(13402,'76676f39-1fef-41fa-8714-f37bc7a74f9b','1289bd9f-a0c1-4444-a1c0-b6ad89edcf02'); CREATE TABLE `globals` (`id` char(36) not null, `site_name` varchar(255) null, `meta_title` varchar(255) null, `meta_description` varchar(255) null, `copyright` varchar(255) null, primary key (`id`)); INSERT INTO globals VALUES('4f8d9e66-ec95-4bdd-a5e7-34df8ea68a45','PCA Pijac','PCA Pijac','Tha bEST pijac evar majkemi!','© 2003 PCA Pijac. All Rights Reversed'); -CREATE TABLE IF NOT EXISTS "pages" (`slug` varchar(255) NOT NULL, `status` varchar(255) NOT NULL DEFAULT 'draft', `title` varchar(255) NULL, `content` text NULL, `show_in` json NULL, PRIMARY KEY (`slug`)); -INSERT INTO pages VALUES('about-us','published','About Us','

Lorem ipsum ...

','[]'); -INSERT INTO pages VALUES('privacy-policy','published','Privacy',replace('

Privacy Policy

\n

Last updated: June 14, 2023

\n

This Privacy Policy describes Our policies and procedures on the collection, use and disclosure of Your information when You use the Service and tells You about Your privacy rights and how the law protects You.

\n

We use Your Personal data to provide and improve the Service. By using the Service, You agree to the collection and use of information in accordance with this Privacy Policy. This Privacy Policy has been created with the help of the Free Privacy Policy Generator.

\n

Interpretation and Definitions

\n

Interpretation

\n

The words of which the initial letter is capitalized have meanings defined under the following conditions. The following definitions shall have the same meaning regardless of whether they appear in singular or in plural.

\n

Definitions

\n

For the purposes of this Privacy Policy:

\n\n

Collecting and Using Your Personal Data

\n

Types of Data Collected

\n

Personal Data

\n

While using Our Service, We may ask You to provide Us with certain personally identifiable information that can be used to contact or identify You. Personally identifiable information may include, but is not limited to:

\n\n

Usage Data

\n

Usage Data is collected automatically when using the Service.

\n

Usage Data may include information such as Your Device''s Internet Protocol address (e.g. IP address), browser type, browser version, the pages of our Service that You visit, the time and date of Your visit, the time spent on those pages, unique device identifiers and other diagnostic data.

\n

When You access the Service by or through a mobile device, We may collect certain information automatically, including, but not limited to, the type of mobile device You use, Your mobile device unique ID, the IP address of Your mobile device, Your mobile operating system, the type of mobile Internet browser You use, unique device identifiers and other diagnostic data.

\n

We may also collect information that Your browser sends whenever You visit our Service or when You access the Service by or through a mobile device.

\n

Tracking Technologies and Cookies

\n

We use Cookies and similar tracking technologies to track the activity on Our Service and store certain information. Tracking technologies used are beacons, tags, and scripts to collect and track information and to improve and analyze Our Service. The technologies We use may include:

\n\n

Cookies can be "Persistent" or "Session" Cookies. Persistent Cookies remain on Your personal computer or mobile device when You go offline, while Session Cookies are deleted as soon as You close Your web browser. Learn more about cookies on the Free Privacy Policy website article.

\n

We use both Session and Persistent Cookies for the purposes set out below:

\n\n

For more information about the cookies we use and your choices regarding cookies, please visit our Cookies Policy or the Cookies section of our Privacy Policy.

\n

Use of Your Personal Data

\n

The Company may use Personal Data for the following purposes:

\n\n

We may share Your personal information in the following situations:

\n\n

Retention of Your Personal Data

\n

The Company will retain Your Personal Data only for as long as is necessary for the purposes set out in this Privacy Policy. We will retain and use Your Personal Data to the extent necessary to comply with our legal obligations (for example, if we are required to retain your data to comply with applicable laws), resolve disputes, and enforce our legal agreements and policies.

\n

The Company will also retain Usage Data for internal analysis purposes. Usage Data is generally retained for a shorter period of time, except when this data is used to strengthen the security or to improve the functionality of Our Service, or We are legally obligated to retain this data for longer time periods.

\n

Transfer of Your Personal Data

\n

Your information, including Personal Data, is processed at the Company''s operating offices and in any other places where the parties involved in the processing are located. It means that this information may be transferred to — and maintained on — computers located outside of Your state, province, country or other governmental jurisdiction where the data protection laws may differ than those from Your jurisdiction.

\n

Your consent to this Privacy Policy followed by Your submission of such information represents Your agreement to that transfer.

\n

The Company will take all steps reasonably necessary to ensure that Your data is treated securely and in accordance with this Privacy Policy and no transfer of Your Personal Data will take place to an organization or a country unless there are adequate controls in place including the security of Your data and other personal information.

\n

Delete Your Personal Data

\n

You have the right to delete or request that We assist in deleting the Personal Data that We have collected about You.

\n

Our Service may give You the ability to delete certain information about You from within the Service.

\n

You may update, amend, or delete Your information at any time by signing in to Your Account, if you have one, and visiting the account settings section that allows you to manage Your personal information. You may also contact Us to request access to, correct, or delete any personal information that You have provided to Us.

\n

Please note, however, that We may need to retain certain information when we have a legal obligation or lawful basis to do so.

\n

Disclosure of Your Personal Data

\n

Business Transactions

\n

If the Company is involved in a merger, acquisition or asset sale, Your Personal Data may be transferred. We will provide notice before Your Personal Data is transferred and becomes subject to a different Privacy Policy.

\n

Law enforcement

\n

Under certain circumstances, the Company may be required to disclose Your Personal Data if required to do so by law or in response to valid requests by public authorities (e.g. a court or a government agency).

\n

Other legal requirements

\n

The Company may disclose Your Personal Data in the good faith belief that such action is necessary to:

\n\n

Security of Your Personal Data

\n

The security of Your Personal Data is important to Us, but remember that no method of transmission over the Internet, or method of electronic storage is 100% secure. While We strive to use commercially acceptable means to protect Your Personal Data, We cannot guarantee its absolute security.

\n

Children''s Privacy

\n

Our Service does not address anyone under the age of 13. We do not knowingly collect personally identifiable information from anyone under the age of 13. If You are a parent or guardian and You are aware that Your child has provided Us with Personal Data, please contact Us. If We become aware that We have collected Personal Data from anyone under the age of 13 without verification of parental consent, We take steps to remove that information from Our servers.

\n

If We need to rely on consent as a legal basis for processing Your information and Your country requires consent from a parent, We may require Your parent''s consent before We collect and use that information.

\n

Links to Other Websites

\n

Our Service may contain links to other websites that are not operated by Us. If You click on a third party link, You will be directed to that third party''s site. We strongly advise You to review the Privacy Policy of every site You visit.

\n

We have no control over and assume no responsibility for the content, privacy policies or practices of any third party sites or services.

\n

Changes to this Privacy Policy

\n

We may update Our Privacy Policy from time to time. We will notify You of any changes by posting the new Privacy Policy on this page.

\n

We will let You know via email and/or a prominent notice on Our Service, prior to the change becoming effective and update the "Last updated" date at the top of this Privacy Policy.

\n

You are advised to review this Privacy Policy periodically for any changes. Changes to this Privacy Policy are effective when they are posted on this page.

\n

Contact Us

\n

If you have any questions about this Privacy Policy, You can contact us:

\n','\n',char(10)),'["FOOTER"]'); CREATE TABLE `menus` (`id` varchar(255) not null, primary key (`id`)); INSERT INTO menus VALUES('MAIN_MENU'); INSERT INTO menus VALUES('FOOTER_MENU'); @@ -1750,9 +1747,9 @@ INSERT INTO menu_items VALUES('95634276-8332-49c7-a794-4f1d92400a1b',NULL,'/vend INSERT INTO menu_items VALUES('ec47e07a-6442-4e94-bbc4-d6432634f5c3',NULL,'/about-us','About Us'); INSERT INTO menu_items VALUES('bd58efd2-caa9-42d9-b967-ca1a951e630b',NULL,'/privacy-policy','Privacy Policy'); CREATE TABLE IF NOT EXISTS "menus_menu_items" (`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL, `menus_id` varchar(255) NULL, `menu_items_id` char(36) NULL, `sort` integer NULL, CONSTRAINT `menus_menu_items_menu_items_id_foreign` FOREIGN KEY (`menu_items_id`) REFERENCES `menu_items` (`id`) ON DELETE SET NULL, CONSTRAINT `menus_menu_items_menus_id_foreign` FOREIGN KEY (`menus_id`) REFERENCES `menus` (`id`) ON DELETE SET NULL); -INSERT INTO menus_menu_items VALUES(1,'MAIN_MENU','35ce29b2-bf57-49ec-9f44-4d978f9cb832',NULL); -INSERT INTO menus_menu_items VALUES(2,'MAIN_MENU','95634276-8332-49c7-a794-4f1d92400a1b',NULL); -INSERT INTO menus_menu_items VALUES(3,'MAIN_MENU','ec47e07a-6442-4e94-bbc4-d6432634f5c3',1); +INSERT INTO menus_menu_items VALUES(1,'MAIN_MENU','35ce29b2-bf57-49ec-9f44-4d978f9cb832',1); +INSERT INTO menus_menu_items VALUES(2,'MAIN_MENU','95634276-8332-49c7-a794-4f1d92400a1b',2); +INSERT INTO menus_menu_items VALUES(3,'MAIN_MENU','ec47e07a-6442-4e94-bbc4-d6432634f5c3',3); INSERT INTO menus_menu_items VALUES(4,'FOOTER_MENU','35ce29b2-bf57-49ec-9f44-4d978f9cb832',1); INSERT INTO menus_menu_items VALUES(5,'FOOTER_MENU','95634276-8332-49c7-a794-4f1d92400a1b',2); INSERT INTO menus_menu_items VALUES(6,'FOOTER_MENU','bd58efd2-caa9-42d9-b967-ca1a951e630b',3); @@ -2257,6 +2254,10 @@ INSERT INTO vendors VALUES('cff25be7-12bc-4652-839c-aed36274f71f','published','s INSERT INTO vendors VALUES('be3c2f26-ef82-4c6b-8a8c-b9222bd2acbf','published','knowbe4','KnowBe4','www.knowbe4.com','KnowBe4 is the world’s largest security awareness training and simulated phishing platform that helps you manage the ongoing problem of social engineering.','33 N Garden Ave. ','Suite 1200','Clearwater','FL','USA','140a626e-f40c-474f-b010-5f96a890069a',replace('
KnowBe4
\n

\nKnowBe4 is the world’s largest security awareness training and simulated phishing platform that helps you manage the ongoing problem of social engineering.
\n

\n
Why KnowBe4?
\n

KnowBe4 is the world’s largest integrated security awareness training and simulated phishing platform. Realizing that the human element of security was being seriously neglected, KnowBe4 was created to help organizations manage the ongoing problem of social engineering through a comprehensive new-school awareness training approach. This method integrates baseline testing using real-world mock attacks, engaging interactive training, continuous assessment through simulated phishing attacks and enterprise-strength reporting, to build a more resilient organization with security top of mind. Tens of thousands of organizations worldwide use KnowBe4’s platform across all industries, including highly regulated fields such as finance, healthcare, energy, government and insurance to mobilize their end users as a last line of defense and enable them to make smarter security decisions

','\n',char(10)),'https://www.facebook.com/knowbe4','https://www.twitter.com/KnowBe4','https://www.linkedin.com/company/knowbe4/',''); CREATE TABLE IF NOT EXISTS "vendors_files" (`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL, `vendors_id` char(36) NULL, `directus_files_id` char(36) NULL, CONSTRAINT `vendors_files_directus_files_id_foreign` FOREIGN KEY (`directus_files_id`) REFERENCES `directus_files` (`id`) ON DELETE SET NULL, CONSTRAINT `vendors_files_vendors_id_foreign` FOREIGN KEY (`vendors_id`) REFERENCES `vendors` (`id`) ON DELETE SET NULL); CREATE TABLE IF NOT EXISTS "vendors_files_1" (`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL, `vendors_id` char(36) NULL, `directus_files_id` char(36) NULL, CONSTRAINT `vendors_files_1_directus_files_id_foreign` FOREIGN KEY (`directus_files_id`) REFERENCES `directus_files` (`id`) ON DELETE SET NULL, CONSTRAINT `vendors_files_1_vendors_id_foreign` FOREIGN KEY (`vendors_id`) REFERENCES `vendors` (`id`) ON DELETE SET NULL); +CREATE TABLE IF NOT EXISTS "pages" (`slug` varchar(255) NOT NULL, `status` varchar(255) NOT NULL DEFAULT 'draft', `title` varchar(255) NULL, `content` text NULL, PRIMARY KEY (`slug`)); +INSERT INTO pages VALUES('about-us','published','About Us','

Lorem ipsum ...

'); +INSERT INTO pages VALUES('privacy-policy','published','Privacy',replace('

Privacy Policy

\n

Last updated: June 14, 2023

\n

This Privacy Policy describes Our policies and procedures on the collection, use and disclosure of Your information when You use the Service and tells You about Your privacy rights and how the law protects You.

\n

We use Your Personal data to provide and improve the Service. By using the Service, You agree to the collection and use of information in accordance with this Privacy Policy. This Privacy Policy has been created with the help of the Free Privacy Policy Generator.

\n

Interpretation and Definitions

\n

Interpretation

\n

The words of which the initial letter is capitalized have meanings defined under the following conditions. The following definitions shall have the same meaning regardless of whether they appear in singular or in plural.

\n

Definitions

\n

For the purposes of this Privacy Policy:

\n\n

Collecting and Using Your Personal Data

\n

Types of Data Collected

\n

Personal Data

\n

While using Our Service, We may ask You to provide Us with certain personally identifiable information that can be used to contact or identify You. Personally identifiable information may include, but is not limited to:

\n\n

Usage Data

\n

Usage Data is collected automatically when using the Service.

\n

Usage Data may include information such as Your Device''s Internet Protocol address (e.g. IP address), browser type, browser version, the pages of our Service that You visit, the time and date of Your visit, the time spent on those pages, unique device identifiers and other diagnostic data.

\n

When You access the Service by or through a mobile device, We may collect certain information automatically, including, but not limited to, the type of mobile device You use, Your mobile device unique ID, the IP address of Your mobile device, Your mobile operating system, the type of mobile Internet browser You use, unique device identifiers and other diagnostic data.

\n

We may also collect information that Your browser sends whenever You visit our Service or when You access the Service by or through a mobile device.

\n

Tracking Technologies and Cookies

\n

We use Cookies and similar tracking technologies to track the activity on Our Service and store certain information. Tracking technologies used are beacons, tags, and scripts to collect and track information and to improve and analyze Our Service. The technologies We use may include:

\n\n

Cookies can be "Persistent" or "Session" Cookies. Persistent Cookies remain on Your personal computer or mobile device when You go offline, while Session Cookies are deleted as soon as You close Your web browser. Learn more about cookies on the Free Privacy Policy website article.

\n

We use both Session and Persistent Cookies for the purposes set out below:

\n\n

For more information about the cookies we use and your choices regarding cookies, please visit our Cookies Policy or the Cookies section of our Privacy Policy.

\n

Use of Your Personal Data

\n

The Company may use Personal Data for the following purposes:

\n\n

We may share Your personal information in the following situations:

\n\n

Retention of Your Personal Data

\n

The Company will retain Your Personal Data only for as long as is necessary for the purposes set out in this Privacy Policy. We will retain and use Your Personal Data to the extent necessary to comply with our legal obligations (for example, if we are required to retain your data to comply with applicable laws), resolve disputes, and enforce our legal agreements and policies.

\n

The Company will also retain Usage Data for internal analysis purposes. Usage Data is generally retained for a shorter period of time, except when this data is used to strengthen the security or to improve the functionality of Our Service, or We are legally obligated to retain this data for longer time periods.

\n

Transfer of Your Personal Data

\n

Your information, including Personal Data, is processed at the Company''s operating offices and in any other places where the parties involved in the processing are located. It means that this information may be transferred to — and maintained on — computers located outside of Your state, province, country or other governmental jurisdiction where the data protection laws may differ than those from Your jurisdiction.

\n

Your consent to this Privacy Policy followed by Your submission of such information represents Your agreement to that transfer.

\n

The Company will take all steps reasonably necessary to ensure that Your data is treated securely and in accordance with this Privacy Policy and no transfer of Your Personal Data will take place to an organization or a country unless there are adequate controls in place including the security of Your data and other personal information.

\n

Delete Your Personal Data

\n

You have the right to delete or request that We assist in deleting the Personal Data that We have collected about You.

\n

Our Service may give You the ability to delete certain information about You from within the Service.

\n

You may update, amend, or delete Your information at any time by signing in to Your Account, if you have one, and visiting the account settings section that allows you to manage Your personal information. You may also contact Us to request access to, correct, or delete any personal information that You have provided to Us.

\n

Please note, however, that We may need to retain certain information when we have a legal obligation or lawful basis to do so.

\n

Disclosure of Your Personal Data

\n

Business Transactions

\n

If the Company is involved in a merger, acquisition or asset sale, Your Personal Data may be transferred. We will provide notice before Your Personal Data is transferred and becomes subject to a different Privacy Policy.

\n

Law enforcement

\n

Under certain circumstances, the Company may be required to disclose Your Personal Data if required to do so by law or in response to valid requests by public authorities (e.g. a court or a government agency).

\n

Other legal requirements

\n

The Company may disclose Your Personal Data in the good faith belief that such action is necessary to:

\n\n

Security of Your Personal Data

\n

The security of Your Personal Data is important to Us, but remember that no method of transmission over the Internet, or method of electronic storage is 100% secure. While We strive to use commercially acceptable means to protect Your Personal Data, We cannot guarantee its absolute security.

\n

Children''s Privacy

\n

Our Service does not address anyone under the age of 13. We do not knowingly collect personally identifiable information from anyone under the age of 13. If You are a parent or guardian and You are aware that Your child has provided Us with Personal Data, please contact Us. If We become aware that We have collected Personal Data from anyone under the age of 13 without verification of parental consent, We take steps to remove that information from Our servers.

\n

If We need to rely on consent as a legal basis for processing Your information and Your country requires consent from a parent, We may require Your parent''s consent before We collect and use that information.

\n

Links to Other Websites

\n

Our Service may contain links to other websites that are not operated by Us. If You click on a third party link, You will be directed to that third party''s site. We strongly advise You to review the Privacy Policy of every site You visit.

\n

We have no control over and assume no responsibility for the content, privacy policies or practices of any third party sites or services.

\n

Changes to this Privacy Policy

\n

We may update Our Privacy Policy from time to time. We will notify You of any changes by posting the new Privacy Policy on this page.

\n

We will let You know via email and/or a prominent notice on Our Service, prior to the change becoming effective and update the "Last updated" date at the top of this Privacy Policy.

\n

You are advised to review this Privacy Policy periodically for any changes. Changes to this Privacy Policy are effective when they are posted on this page.

\n

Contact Us

\n

If you have any questions about this Privacy Policy, You can contact us:

\n','\n',char(10))); +INSERT INTO pages VALUES('home','published',NULL,'

HOME PAGE

'); DELETE FROM sqlite_sequence; CREATE UNIQUE INDEX `directus_users_external_identifier_unique` on `directus_users` (`external_identifier`); CREATE UNIQUE INDEX `directus_users_email_unique` on `directus_users` (`email`);