@madgex/fert 7.2.0 → 7.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/README.md +50 -0
  2. package/bin/cli.js +4 -0
  3. package/bin/commands/build.js +4 -1
  4. package/bin/commands/dev-server.js +2 -2
  5. package/bin/commands/init-template-tasks/copy-theme-files.js +61 -0
  6. package/bin/commands/init-template-tasks/generate-entry-nunjucks-file.js +64 -0
  7. package/bin/commands/init-template-tasks/get-macro-name-from-nunjucks.js +13 -0
  8. package/bin/commands/init-template-tasks/get-nunjucks-dependencies.js +58 -0
  9. package/bin/commands/init-template-tasks/get-out-dir.js +6 -0
  10. package/bin/commands/init-template.js +94 -0
  11. package/bin/commands/validate.js +1 -1
  12. package/bin/utils/cpid-lookup.js +2 -1
  13. package/bin/utils/get-assets-path.js +4 -4
  14. package/bin/utils/index.js +1 -26
  15. package/bin/utils/validation.js +2 -1
  16. package/bin/validators/redirects-csv.validator.js +147 -0
  17. package/constants.js +1 -2
  18. package/docs/FAQ.md +1 -0
  19. package/docs/README.md +30 -11
  20. package/package.json +2 -2
  21. package/repo-template/services/jobseekers-frontend/templates/footer.njk +18 -19
  22. package/repo-template/services/jobseekers-frontend/templates/header.njk +19 -74
  23. package/repo-template/services/recruiterservices-frontend/templates/footer.njk +19 -18
  24. package/repo-template/services/recruiterservices-frontend/templates/header.njk +19 -82
  25. package/types.d.ts +1 -0
  26. package/repo-template/services/jobseekers-frontend/templates/context/footer-nav.njk +0 -27
  27. package/repo-template/services/jobseekers-frontend/templates/context/main-nav.njk +0 -41
  28. package/repo-template/services/jobseekers-frontend/templates/context/user-nav.njk +0 -17
  29. package/repo-template/services/jobseekers-frontend/templates/includes/footer-nav.njk +0 -15
  30. package/repo-template/services/jobseekers-frontend/templates/includes/main-nav.njk +0 -19
  31. package/repo-template/services/jobseekers-frontend/templates/includes/user-nav/authenticated.njk +0 -34
  32. package/repo-template/services/jobseekers-frontend/templates/includes/user-nav/unauthenticated.njk +0 -9
  33. package/repo-template/services/jobseekers-frontend/templates/translations/da.njk +0 -26
  34. package/repo-template/services/jobseekers-frontend/templates/translations/de.njk +0 -26
  35. package/repo-template/services/jobseekers-frontend/templates/translations/en.njk +0 -27
  36. package/repo-template/services/jobseekers-frontend/templates/translations/es.njk +0 -26
  37. package/repo-template/services/jobseekers-frontend/templates/translations/fr.njk +0 -26
  38. package/repo-template/services/jobseekers-frontend/templates/translations/nb.njk +0 -26
  39. package/repo-template/services/jobseekers-frontend/templates/translations/nl.njk +0 -26
  40. package/repo-template/services/jobseekers-frontend/templates/translations/sv.njk +0 -26
  41. package/repo-template/services/jobseekers-frontend/templates/translations/zh-cn.njk +0 -26
  42. package/repo-template/services/recruiterservices-frontend/templates/context/links.njk +0 -136
  43. package/repo-template/services/recruiterservices-frontend/templates/includes/basket-nav.njk +0 -25
  44. package/repo-template/services/recruiterservices-frontend/templates/includes/footer/footer-nav.njk +0 -35
  45. package/repo-template/services/recruiterservices-frontend/templates/includes/footer/social-links.njk +0 -14
  46. package/repo-template/services/recruiterservices-frontend/templates/includes/primary-nav.njk +0 -18
  47. package/repo-template/services/recruiterservices-frontend/templates/includes/user-nav/authenticated.njk +0 -36
  48. package/repo-template/services/recruiterservices-frontend/templates/includes/user-nav/switch-recruiters.njk +0 -13
  49. package/repo-template/services/recruiterservices-frontend/templates/includes/user-nav/unauthenticated.njk +0 -11
  50. package/repo-template/services/recruiterservices-frontend/templates/includes/user-nav/user-nav.njk +0 -9
  51. package/repo-template/services/recruiterservices-frontend/templates/translations/en.njk +0 -29
@@ -1,26 +0,0 @@
1
- {% set translations = {
2
- header: {
3
- "sign-in": "Iniciar sesión",
4
- "sign-out": "Cerrar sesión",
5
- "or": "o",
6
- "create-account": "Crear cuenta",
7
- "link-new-window": "(Este enlace se abrirá en una nueva ventana.)",
8
- "your-shortlist": "Su preselección",
9
- "user-menu": "Menú de usuario",
10
-
11
- "skip-to-main-menu": "Ir al menú principal",
12
- "skip-to-user-menu": "Skip to user menu",
13
-
14
- "recruiters": "Empresas",
15
- "jobseekers": "Candidatos",
16
-
17
- "user": "Usuario",
18
- "homepage": "Página principal",
19
- "main": "Menú principal"
20
- },
21
-
22
- footer: {
23
- "back-to-top": "Volver arriba",
24
- "footer": "Pie de página"
25
- }
26
- } %}
@@ -1,26 +0,0 @@
1
- {% set translations = {
2
- header: {
3
- "sign-in": "Connexion",
4
- "sign-out": "Déconnexion",
5
- "or": "ou",
6
- "create-account": "Créez un compte",
7
- "link-new-window": "(Une nouvelle fenêtre s'ouvrira)",
8
- "your-shortlist": "Favoris",
9
- "user-menu": "Menu de l'utilisateur",
10
-
11
- "skip-to-main-menu": "Passer au menu principal",
12
- "skip-to-user-menu": "Skip to user menu",
13
-
14
- "recruiters": "Recruteurs",
15
- "jobseekers": "Chercheurs d'emploi",
16
-
17
- "user": "Utilisateur",
18
- "homepage": "Page d'accueil",
19
- "main": "Menu principal"
20
- },
21
-
22
- footer: {
23
- "back-to-top": "Haut de page",
24
- "footer": "Bas de page"
25
- }
26
- } %}
@@ -1,26 +0,0 @@
1
- {% set translations = {
2
- header: {
3
- "sign-in": "Logg inn",
4
- "sign-out": "Logg ut",
5
- "or": "eller",
6
- "create-account": "Opprett konto",
7
- "link-new-window": "(Dette åpnes i et nytt vindu)",
8
- "your-shortlist": "Lagrede annonser",
9
- "user-menu": "Brukermeny",
10
-
11
- "skip-to-main-menu": "Hoppe til hovedmenyen",
12
- "skip-to-user-menu": "Hopp til brukermeny",
13
-
14
- "recruiters": "Rekrutterere",
15
- "jobseekers": "Arbeidssøkere",
16
-
17
- "user": "Bruker",
18
- "homepage": "Forsiden",
19
- "main": "Hovedmeny"
20
- },
21
-
22
- footer: {
23
- "back-to-top": "Tilbake til toppen",
24
- "footer": "Sidefot"
25
- }
26
- } %}
@@ -1,26 +0,0 @@
1
- {% set translations = {
2
- header: {
3
- "sign-in": "Aanmelden",
4
- "sign-out": "Afmelden",
5
- "or": "of",
6
- "create-account": "Account aanmaken",
7
- "link-new-window": "(Dit opent in een nieuw venster)",
8
- "your-shortlist": "Jouw selectie",
9
- "user-menu": "Gebruikersmenu",
10
-
11
- "skip-to-main-menu": "Verdergaan naar hoofdmenu",
12
- "skip-to-user-menu": "Verdergaan naar gebruikersmenu",
13
-
14
- "recruiters": "Wervers",
15
- "jobseekers": "Werkzoekenden",
16
-
17
- "user": "Gebruiker",
18
- "homepage": "Startpagina",
19
- "main": "Hoofdmenu"
20
- },
21
-
22
- footer: {
23
- "back-to-top": "Terug naar boven",
24
- "footer": "Voettekst"
25
- }
26
- } %}
@@ -1,26 +0,0 @@
1
- {% set translations = {
2
- header: {
3
- "sign-in": "Logga in",
4
- "sign-out": "Logga ut",
5
- "or": "eller",
6
- "create-account": "Skapa ett konto",
7
- "link-new-window": "(Detta öppnas i ett nytt fönster)",
8
- "your-shortlist": "Din jobblista",
9
- "user-menu": "Användarmeny",
10
-
11
- "skip-to-main-menu": "Hoppa till huvudmeny",
12
- "skip-to-user-menu": "Gå till användarmeny",
13
-
14
- "recruiters": "Rekryterare",
15
- "jobseekers": "Jobbsökare",
16
-
17
- "user": "Användare",
18
- "homepage": "Hemsida",
19
- "main": "Huvudmeny"
20
- },
21
-
22
- footer: {
23
- "back-to-top": "Tillbaka till toppen av sidan",
24
- "footer": "Sidfot"
25
- }
26
- } %}
@@ -1,26 +0,0 @@
1
- {% set translations = {
2
- header: {
3
- "sign-in": "登录",
4
- "sign-out": "注销",
5
- "or": "或",
6
- "create-account": "创建帐户",
7
- "link-new-window": "(这会在新窗口中打开)",
8
- "your-shortlist": "您的候选清单",
9
- "user-menu": "用户菜单",
10
-
11
- "skip-to-main-menu": "跳至主菜单",
12
- "skip-to-user-menu": "跳至用户菜单",
13
-
14
- "recruiters": "招聘企业",
15
- "jobseekers": "求职者",
16
-
17
- "user": "用户",
18
- "homepage": "主页",
19
- "main": "主菜单"
20
- },
21
-
22
- footer: {
23
- "back-to-top": "返回顶部",
24
- "footer": "页脚"
25
- }
26
- } %}
@@ -1,136 +0,0 @@
1
- {% set mainNavigation = [
2
- {
3
- "href": "/",
4
- "label": "Home",
5
- "openInNewWindow": false
6
- },
7
- {
8
- "href": "/pricing",
9
- "label": "Pricing",
10
- "openInNewWindow": false
11
- },
12
- {
13
- "href": "/job-listing",
14
- "label": "Your jobs",
15
- "openInNewWindow": false
16
- },
17
- {
18
- "href": "/content",
19
- "label": "Why post with us?",
20
- "openInNewWindow": false
21
- }
22
- ] %}
23
-
24
- {% set footerNavigationHorizontal = [
25
- {
26
- "href": "/about-us",
27
- "label": "About us",
28
- "openInNewWindow": false
29
- },
30
- {
31
- "href": "/contact-us",
32
- "label": "Contact us",
33
- "openInNewWindow": false
34
- },
35
- {
36
- "href": "/terms-and-conditions",
37
- "label": "Terms and conditions",
38
- "openInNewWindow": false
39
- },
40
- {
41
- "href": "/privacy-policy",
42
- "label": "Privacy policy",
43
- "openInNewWindow": false
44
- },
45
- {
46
- "href": "/refund-policy",
47
- "label": "Refund policy",
48
- "openInNewWindow": false
49
- },
50
- {
51
- "href": "/static-page/220/accessibility",
52
- "label": "Accessibility",
53
- "openInNewWindow": false
54
- },
55
- {
56
- "href": "/static-page/270/help",
57
- "label": "Help",
58
- "openInNewWindow": false
59
- }
60
- ] %}
61
-
62
- {% set footerNavigationColumns = [
63
- {
64
- title: "Column Title",
65
- items: [
66
- {
67
- "href": "/about-us",
68
- "label": "About us",
69
- "openInNewWindow": false
70
- },
71
- {
72
- "href": "/contact-us",
73
- "label": "Contact us",
74
- "openInNewWindow": false
75
- },
76
- {
77
- "href": "/terms-and-conditions",
78
- "label": "Terms and conditions",
79
- "openInNewWindow": false
80
- }
81
- ]
82
- },
83
- {
84
- title: "Column Title",
85
- items: [
86
- {
87
- "href": "/privacy-policy",
88
- "label": "Privacy policy",
89
- "openInNewWindow": false
90
- },
91
- {
92
- "href": "/refund-policy",
93
- "label": "Refund policy",
94
- "openInNewWindow": false
95
- }
96
- ]
97
- },
98
- {
99
- title: "Column Title",
100
- items: [
101
- {
102
- "href": "/static-page/220/accessibility",
103
- "label": "Accessibility",
104
- "openInNewWindow": false
105
- },
106
- {
107
- "href": "/static-page/270/help",
108
- "label": "Help",
109
- "openInNewWindow": false
110
- }
111
- ]
112
- }
113
- ] %}
114
-
115
- {% set socialLinks = [
116
- {
117
- "href": "https://www.facebook.com/",
118
- "label": "Facebook",
119
- "icon": "icon-social-facebook"
120
- },
121
- {
122
- "href": "https://twitter.com/",
123
- "label": "Twitter",
124
- "icon": "icon-social-twitter"
125
- },
126
- {
127
- "href": "https://www.linkedin.com/company/",
128
- "label": "LinkedIn",
129
- "icon": "icon-social-linkedin"
130
- },
131
- {
132
- "href": "https://www.youtube.com/",
133
- "label": "Youtube",
134
- "icon": "icon-question-mark"
135
- }
136
- ] %}
@@ -1,25 +0,0 @@
1
- <nav aria-label="{{ translations["basket-nav"] }}">
2
- <ul>
3
- <li class="nav_item">
4
- {%- set basketText -%}
5
- <svg aria-hidden="true" focusable="false" alt="" class="icon icon--inline">
6
- <use href="/public/icons/mds-icons.svg#icon-cart"></use>
7
- </svg>
8
- {{ translations["basket"] }} {{ primaryRecruiter.basketCount }}
9
- {%- endset -%}
10
- {% if primaryRecruiter.basketCount > 0 %}
11
- <a href="/checkout/create-order">{{ basketText | safe }}</a>
12
- {% else %}
13
- {{ basketText | safe }}
14
- {% endif %}
15
- </li>
16
- {% if primaryRecruiter.hasCredits %}
17
- <li class="nav_item">
18
- <a href="/credit-balance">{{ translations["credit-balance"] }}</a>
19
- </li>
20
- {% endif %}
21
- <li class="nav_item">
22
- <a href="/orders">{{ translations["orders"] }}</a>
23
- </li>
24
- </ul>
25
- </nav>
@@ -1,35 +0,0 @@
1
- {% macro footerNavItem(params) %}
2
- <li class="footer-nav_item">
3
- <a class="footer-nav_link"
4
- href="{{ params.href }}"
5
- {%- if params.openInNewWindow -%} target="_blank" rel="noopener" {% endif %}>
6
- <span class="footer-nav_label">{{- params.label | safe -}}</span>
7
- {%- if params.openInNewWindow %}<span class="hidden">{{ translations.header["link-new-window"] }}</span>{% endif %}
8
- </a>
9
- </li>
10
- {% endmacro %}
11
-
12
- {% macro footerNav(params) %}
13
- {% if params %}
14
- {% if params[0].items %}
15
- <nav class="footer-nav footer-nav--columns" aria-label="{{ translations["footer-nav-label"] }}">
16
- {%- for column in params -%}
17
- <ul class="footer-nav_list">
18
- {% if column.title %}<li>{{ column.title }}</li>{% endif %}
19
- {%- for item in column.items -%}
20
- {{ footerNavItem(item) }}
21
- {%- endfor -%}
22
- </ul>
23
- {%- endfor -%}
24
- </nav>
25
- {% else %}
26
- <nav class="footer-nav footer-nav--horizontal" aria-label="{{ translations["footer-nav-label"] }}">
27
- <ul class="footer-nav_list">
28
- {% for item in params %}
29
- {{ footerNavItem(item) }}
30
- {% endfor %}
31
- </ul>
32
- </nav>
33
- {% endif %}
34
- {% endif %}
35
- {% endmacro %}
@@ -1,14 +0,0 @@
1
- {%- from templatePath + 'context/links.njk' import socialLinks -%}
2
- <ul class="social-links">
3
- {%- for item in socialLinks -%}
4
- <li class="social-links_item social-links_item--{{ item.label | lower }}">
5
- <a rel="nofollow" href="{{ item.href }}" target="_blank">
6
- <svg focusable="false" class="icon icon--inline" alt="">
7
- <use href="/public/icons/icons.svg#{{ item.icon }}"></use>
8
- </svg>
9
- <span class="hidden">{{ item.label }}</span>
10
- <span class="hidden">{{ translations["link-new-window"] }}</span>
11
- </a>
12
- </li>
13
- {%- endfor -%}
14
- </ul>
@@ -1,18 +0,0 @@
1
- {%- from templatePath + 'context/links.njk' import mainNavigation -%}
2
-
3
- <nav class="primary-nav" aria-label="{{ translations["primary-nav"] }}">
4
- <ul class="primary-nav_list">
5
- {% for item in mainNavigation %}
6
- <li class="primary-nav_item primary-nav_item--index-{{loop.index0}}
7
- {%- if item.href | normaliseUrl === path %} primary-nav_item--active{% endif -%}
8
- {%- if loop.last %} primary-nav_item--last{% endif -%}">
9
- <a class="primary-nav_link"
10
- href="{{ item.href }}"
11
- {%- if item.openInNewWindow -%} target="_blank" rel="noopener" {% endif %}>
12
- <span class="primary-nav_label">{{- item.label | safe -}}</span>
13
- {%- if item.openInNewWindow %}<span class="hidden">{{ translations["link-new-window"] }}</span>{% endif %}
14
- </a>
15
- </li>
16
- {% endfor %}
17
- </ul>
18
- </nav>
@@ -1,36 +0,0 @@
1
- <ul>
2
- <li class="nav_item">
3
- <a href="/company">{{ params.primaryRecruiter.name | safe }}
4
- <svg aria-hidden="true" focusable="false" class="icon icon--inline" alt="">
5
- <use href="/public/icons/icons.svg#icon-settings"></use>
6
- </svg>
7
- </a>
8
- </li>
9
- {% if auth.artifacts.recruiters.length > 1 %}
10
- <li class="nav_item">
11
- {% if params.switchCompanyForm %}
12
- <mds-dropdown-nav target="switch-recruiter-form" class="toggle-nav_button">
13
- <span class="link-like">{{ translations["switch-recruiter"] }}</span>
14
- </mds-dropdown-nav>
15
- <div id="switch-recruiter-form">
16
- {% include templatePath + './switch-recruiters.njk' %}
17
- </div>
18
- {% else %}
19
- <a href="/switch-company">{{ translations["switch-recruiter"] }}</a>
20
- {% endif %}
21
- </li>
22
- {% endif %}
23
- <li class="nav_item">
24
- <a href="/account">{{ auth.credentials.username | safe }}
25
- <svg aria-hidden="true" focusable="false" class="icon icon--inline" alt="">
26
- <use href="/public/icons/icons.svg#icon-settings"></use>
27
- </svg>
28
- </a>
29
- </li>
30
- <li class="nav_item">
31
- <a href="/logout">{{ translations["sign-out"] }}</a>
32
- </li>
33
- <li class="nav_item">
34
- <a href="/JOBSEEKERS-LINK">{{ translations["jobseekers-link"] }}</a>
35
- </li>
36
- </ul>
@@ -1,13 +0,0 @@
1
- <form class="switch-recruiter-form" method="post" action="/switch-company/">
2
- <input type="hidden" name="PipelinedPage" value="{{ path }}">
3
- {# TODO add query to context #}
4
- <input type="hidden" name="PipelinedQueryString" value="">
5
- {% for recruiter in auth.artifacts.recruiters %}
6
- <div>
7
- <input type="radio" name="recruiter" value="{{recruiter.id}}" id="RecruiterId{{recruiter.id}}"
8
- {% if recruiter.isPrimary %}checked{% endif %}>
9
- <label for="RecruiterId{{recruiter.id}}" >{{ recruiter.name }}</label>
10
- </div>
11
- {% endfor %}
12
- <button>{{ translations["switch-recruiter"] }}</button>
13
- </form>
@@ -1,11 +0,0 @@
1
- <ul>
2
- <li class="nav_item">
3
- <a href="/login">{{ translations["log-in"] }}</a>
4
- </li>
5
- <li class="nav_item">
6
- <a href="/register">{{ translations["register"] }}</a>
7
- </li>
8
- <li class="nav_item">
9
- <a href="/JOBSEEKERS-LINK">{{ translations["jobseekers-link"] }}</a>
10
- </li>
11
- </ul>
@@ -1,9 +0,0 @@
1
- {% macro UserNavigation(params) %}
2
- <nav aria-label="{{ translations["user-nav"] }}">
3
- {%- if params.isAuthenticated %}
4
- {% include templatePath + './authenticated.njk' %}
5
- {%- else %}
6
- {% include templatePath + './unauthenticated.njk' %}
7
- {% endif -%}
8
- </nav>
9
- {% endmacro %}
@@ -1,29 +0,0 @@
1
- {#
2
- Update to logo-alt to "[ brand name ] homepage"
3
- #}
4
-
5
- {% set translations = {
6
- "site-name": "Madgex",
7
- "logo-alt": "Madgex homepage",
8
- "link-new-window": "This link will open in a new window",
9
-
10
- "primary-nav": "Main",
11
- "basket-nav": "Basket",
12
- "user-nav": "User",
13
-
14
- "primary-nav-button": "Main menu",
15
- "basket-nav-button": "Basket menu",
16
- "user-nav-button": "User menu",
17
-
18
- "log-in": "Log in",
19
- "sign-out": "Sign out",
20
- "register": "Register",
21
- "switch-recruiter": "Switch recruiter",
22
- "jobseekers-link": "Jobseekers",
23
-
24
- "basket": "Basket:",
25
- "credit-balance": "Credit balance",
26
- "orders": "Orders",
27
-
28
- "footer-nav-label": "footer"
29
- } %}