@ndla/ui 25.2.1 → 26.0.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 (74) hide show
  1. package/es/Article/ArticleByline.js +17 -7
  2. package/es/Article/ArticleSideBar.js +5 -4
  3. package/es/Breadcrumb/BreadcrumbItem.js +8 -7
  4. package/es/ErrorMessage/ErrorMessage.js +12 -6
  5. package/es/Frontpage/FrontpageHeader.js +7 -9
  6. package/es/LanguageSelector/LanguageSelector.js +12 -7
  7. package/es/LearningPaths/LearningPathInformation.js +8 -5
  8. package/es/Subject/SubjectHeader.js +5 -6
  9. package/es/TreeStructure/FolderItem.js +110 -94
  10. package/es/TreeStructure/FolderItems.js +26 -30
  11. package/es/TreeStructure/FolderNameInput.js +35 -27
  12. package/es/TreeStructure/NavigationLink.js +81 -0
  13. package/es/TreeStructure/TreeStructure.js +169 -45
  14. package/es/locale/messages-en.js +7 -22
  15. package/es/locale/messages-nb.js +8 -23
  16. package/es/locale/messages-nn.js +7 -22
  17. package/es/locale/messages-se.js +697 -712
  18. package/es/locale/messages-sma.js +8 -23
  19. package/lib/Article/ArticleByline.js +17 -7
  20. package/lib/Article/ArticleSideBar.js +5 -4
  21. package/lib/Breadcrumb/BreadcrumbItem.js +8 -7
  22. package/lib/ErrorMessage/ErrorMessage.d.ts +1 -0
  23. package/lib/ErrorMessage/ErrorMessage.js +12 -6
  24. package/lib/Frontpage/FrontpageHeader.d.ts +5 -6
  25. package/lib/Frontpage/FrontpageHeader.js +7 -11
  26. package/lib/LanguageSelector/LanguageSelector.js +13 -7
  27. package/lib/LearningPaths/LearningPathInformation.d.ts +2 -1
  28. package/lib/LearningPaths/LearningPathInformation.js +8 -5
  29. package/lib/Subject/SubjectHeader.js +14 -16
  30. package/lib/TreeStructure/FolderItem.d.ts +2 -3
  31. package/lib/TreeStructure/FolderItem.js +107 -92
  32. package/lib/TreeStructure/FolderItems.d.ts +1 -3
  33. package/lib/TreeStructure/FolderItems.js +26 -29
  34. package/lib/TreeStructure/FolderNameInput.d.ts +2 -1
  35. package/lib/TreeStructure/FolderNameInput.js +33 -26
  36. package/lib/TreeStructure/NavigationLink.d.ts +15 -0
  37. package/lib/TreeStructure/NavigationLink.js +100 -0
  38. package/lib/TreeStructure/TreeStructure.d.ts +1 -2
  39. package/lib/TreeStructure/TreeStructure.js +163 -45
  40. package/lib/TreeStructure/types.d.ts +4 -1
  41. package/lib/locale/messages-en.d.ts +4 -19
  42. package/lib/locale/messages-en.js +7 -22
  43. package/lib/locale/messages-nb.d.ts +4 -19
  44. package/lib/locale/messages-nb.js +8 -23
  45. package/lib/locale/messages-nn.d.ts +4 -19
  46. package/lib/locale/messages-nn.js +7 -22
  47. package/lib/locale/messages-se.d.ts +4 -19
  48. package/lib/locale/messages-se.js +697 -712
  49. package/lib/locale/messages-sma.d.ts +4 -19
  50. package/lib/locale/messages-sma.js +8 -23
  51. package/package.json +14 -14
  52. package/src/Article/ArticleByline.tsx +10 -3
  53. package/src/Article/ArticleSideBar.tsx +1 -0
  54. package/src/Breadcrumb/BreadcrumbItem.tsx +1 -1
  55. package/src/ErrorMessage/ErrorMessage.tsx +6 -0
  56. package/src/Frontpage/FrontpageHeader.tsx +5 -6
  57. package/src/LanguageSelector/LanguageSelector.tsx +4 -1
  58. package/src/LearningPaths/LearningPathInformation.tsx +3 -2
  59. package/src/Subject/SubjectHeader.tsx +1 -2
  60. package/src/TreeStructure/FolderItem.tsx +126 -104
  61. package/src/TreeStructure/FolderItems.tsx +51 -43
  62. package/src/TreeStructure/FolderNameInput.tsx +43 -28
  63. package/src/TreeStructure/NavigationLink.tsx +100 -0
  64. package/src/TreeStructure/TreeStructure.tsx +187 -61
  65. package/src/TreeStructure/types.ts +5 -1
  66. package/src/locale/messages-en.ts +9 -22
  67. package/src/locale/messages-nb.ts +10 -23
  68. package/src/locale/messages-nn.ts +9 -22
  69. package/src/locale/messages-se.ts +724 -738
  70. package/src/locale/messages-sma.ts +10 -23
  71. package/es/TreeStructure/TreeStructureWrapper.js +0 -13
  72. package/lib/TreeStructure/TreeStructureWrapper.d.ts +0 -12
  73. package/lib/TreeStructure/TreeStructureWrapper.js +0 -24
  74. package/src/TreeStructure/TreeStructureWrapper.tsx +0 -31
@@ -6,18 +6,20 @@
6
6
  *
7
7
  */
8
8
 
9
- import React, { useEffect, useState, useMemo } from 'react';
10
- import { AddButton } from '@ndla/button';
9
+ import React, { useEffect, useState, useMemo, useRef } from 'react';
10
+ import { ButtonV2 as Button, IconButtonDualStates } from '@ndla/button';
11
+ import { Plus } from '@ndla/icons/action';
12
+ import { ChevronDown, ChevronUp } from '@ndla/icons/common';
11
13
  import Tooltip from '@ndla/tooltip';
12
14
  import { useTranslation } from 'react-i18next';
13
15
  import styled from '@emotion/styled';
14
- import { spacing, fonts } from '@ndla/core';
16
+ import { colors, fonts, misc, spacing } from '@ndla/core';
17
+ import { css } from '@emotion/core';
15
18
  import { uniq } from 'lodash';
16
19
  import { IFolder } from '@ndla/types-learningpath-api';
17
- import TreeStructureStyledWrapper from './TreeStructureWrapper';
18
20
  import FolderItems from './FolderItems';
19
21
  import { flattenFolders } from './helperFunctions';
20
- import { CommonTreeStructureProps, FolderType } from './types';
22
+ import { CommonTreeStructureProps, FolderType, TreeStructureType } from './types';
21
23
 
22
24
  export const MAX_LEVEL_FOR_FOLDERS = 4;
23
25
 
@@ -25,15 +27,86 @@ const StyledLabel = styled.label`
25
27
  font-weight: ${fonts.weight.semibold};
26
28
  `;
27
29
 
28
- const AddFolderWrapper = styled.div`
30
+ interface StyledRowProps {
31
+ isOpen: boolean;
32
+ }
33
+
34
+ const StyledRow = styled.div<StyledRowProps>`
35
+ display: flex;
36
+ justify-content: space-between;
37
+ padding: ${spacing.xxsmall};
38
+ border-bottom: ${({ isOpen }) => isOpen && `1px solid ${colors.brand.tertiary}`};
39
+ `;
40
+
41
+ const StyledTreeStructure = styled.div`
42
+ flex: 1;
43
+ display: flex;
44
+ flex-direction: column;
45
+ `;
46
+
47
+ const TreeStructureWrapper = styled.div<{ type: TreeStructureType }>`
29
48
  display: flex;
30
- margin-top: ${spacing.xsmall};
49
+ flex-direction: column;
50
+ ${({ type }) =>
51
+ (type === 'normal' || type === 'picker') &&
52
+ css`
53
+ overflow: hidden;
54
+ border: 1px solid ${colors.brand.neutral7};
55
+ border-radius: ${misc.borderRadius};
56
+ scroll-behavior: smooth;
57
+ `}
58
+ transition: ${misc.transition.default};
59
+ &:focus-within {
60
+ border-color: ${colors.brand.tertiary};
61
+ }
62
+ `;
63
+ interface ScrollableDivProps {
64
+ type: TreeStructureType;
65
+ }
66
+ const ScrollableDiv = styled.div<ScrollableDivProps>`
67
+ ${({ type }) =>
68
+ (type === 'picker' || type === 'normal') &&
69
+ css`
70
+ overflow: overlay;
71
+ ::-webkit-scrollbar {
72
+ width: ${spacing.small};
73
+ }
74
+ ::-webkit-scrollbar-thumb {
75
+ border: 4px solid transparent;
76
+ border-radius: 14px;
77
+ background-clip: padding-box;
78
+ padding: 0 4px;
79
+ background-color: ${colors.brand.neutral7};
80
+ }
81
+ `}
82
+ `;
83
+
84
+ const StyledSelectedFolder = styled(Button)`
85
+ flex: 1;
86
+ justify-content: flex-start;
87
+ :hover,
88
+ :focus {
89
+ background: none;
90
+ box-shadow: none;
91
+ border-color: transparent;
92
+ }
93
+ `;
94
+
95
+ const StyledAddFolderButton = styled(Button)`
96
+ &,
97
+ &:disabled {
98
+ border-color: transparent;
99
+ }
100
+ `;
101
+
102
+ const StyledPlus = styled(Plus)`
103
+ height: 24px;
104
+ width: 24px;
31
105
  `;
32
106
 
33
107
  export interface TreeStructureProps extends CommonTreeStructureProps {
34
108
  defaultOpenFolders?: string[];
35
109
  folders: FolderType[];
36
- editable?: boolean;
37
110
  label?: string;
38
111
  maximumLevelsOfFoldersAllowed?: number;
39
112
  onNewFolder?: (name: string, parentId: string) => Promise<IFolder>;
@@ -41,10 +114,7 @@ export interface TreeStructureProps extends CommonTreeStructureProps {
41
114
 
42
115
  const TreeStructure = ({
43
116
  defaultOpenFolders,
44
- editable,
45
- menuItems,
46
117
  folders,
47
- framed,
48
118
  label,
49
119
  loading,
50
120
  maximumLevelsOfFoldersAllowed = MAX_LEVEL_FOR_FOLDERS,
@@ -52,9 +122,12 @@ const TreeStructure = ({
52
122
  onSelectFolder,
53
123
  openOnFolderClick,
54
124
  targetResource,
125
+ type = 'normal',
55
126
  }: TreeStructureProps) => {
56
127
  const { t } = useTranslation();
57
128
 
129
+ const ref = useRef<HTMLDivElement>(null);
130
+
58
131
  const defaultSelectedFolderId = defaultOpenFolders && defaultOpenFolders[defaultOpenFolders.length - 1];
59
132
 
60
133
  const [openFolders, setOpenFolders] = useState<string[]>(defaultOpenFolders || []);
@@ -62,10 +135,25 @@ const TreeStructure = ({
62
135
  const [newFolderParentId, setNewFolderParentId] = useState<string | undefined>();
63
136
  const [focusedId, setFocusedId] = useState<string | undefined>();
64
137
  const [selectedFolder, setSelectedFolder] = useState<FolderType | undefined>();
138
+ const [showTree, setShowTree] = useState(type !== 'picker');
65
139
 
66
140
  const flattenedFolders = useMemo(() => flattenFolders(folders, openFolders), [folders, openFolders]);
67
141
  const visibleFolderIds = flattenedFolders.map((folder) => folder.id);
68
142
 
143
+ useEffect(() => {
144
+ const handleClickOutside = (e: MouseEvent) => {
145
+ if (e.target instanceof Element && ref.current && !ref.current.contains(e.target)) {
146
+ setShowTree(false);
147
+ }
148
+ };
149
+ if (type === 'picker') {
150
+ document.addEventListener('mousedown', handleClickOutside);
151
+ return () => {
152
+ document.removeEventListener('mousedown', handleClickOutside);
153
+ };
154
+ }
155
+ }, [ref, type]);
156
+
69
157
  useEffect(() => {
70
158
  if (defaultOpenFolders) {
71
159
  if (!defaultOpenFolders.every((element) => openFolders.includes(element))) {
@@ -77,6 +165,10 @@ const TreeStructure = ({
77
165
  // eslint-disable-next-line react-hooks/exhaustive-deps
78
166
  }, [defaultOpenFolders]);
79
167
 
168
+ useEffect(() => {
169
+ setNewFolderParentId(undefined);
170
+ }, [selectedFolder]);
171
+
80
172
  useEffect(() => {
81
173
  if (defaultSelectedFolderId !== undefined) {
82
174
  const selected = flattenFolders(folders).find((folder) => folder.id === defaultSelectedFolderId);
@@ -114,9 +206,9 @@ const TreeStructure = ({
114
206
  };
115
207
 
116
208
  const onSaveNewFolder = (name: string, parentId: string) => {
117
- setNewFolderParentId(undefined);
118
209
  onNewFolder?.(name, parentId).then((newFolder) => {
119
210
  if (newFolder) {
211
+ setNewFolderParentId?.(undefined);
120
212
  setSelectedFolder(newFolder);
121
213
  onSelectFolder?.(newFolder.id);
122
214
  setFocusedId(newFolder.id);
@@ -126,60 +218,94 @@ const TreeStructure = ({
126
218
  };
127
219
 
128
220
  const onCancelNewFolder = () => {
129
- setNewFolderParentId(undefined);
221
+ setNewFolderParentId?.(undefined);
130
222
  };
131
223
 
132
- const canAddFolder =
133
- editable && selectedFolder && selectedFolder?.breadcrumbs.length < (maximumLevelsOfFoldersAllowed || 1);
224
+ const canAddFolder = selectedFolder && selectedFolder?.breadcrumbs.length < (maximumLevelsOfFoldersAllowed || 1);
134
225
 
135
226
  return (
136
- <div>
227
+ <StyledTreeStructure ref={ref}>
137
228
  {label && <StyledLabel>{label}</StyledLabel>}
138
- <TreeStructureStyledWrapper aria-label="Menu tree" role="tree" framed={framed}>
139
- <FolderItems
140
- editable={editable}
141
- focusedFolderId={focusedId}
142
- menuItems={menuItems}
143
- folders={folders}
144
- level={0}
145
- loading={loading}
146
- selectedFolder={selectedFolder}
147
- maximumLevelsOfFoldersAllowed={maximumLevelsOfFoldersAllowed}
148
- newFolderParentId={newFolderParentId}
149
- onCancelNewFolder={onCancelNewFolder}
150
- onCloseFolder={onCloseFolder}
151
- onOpenFolder={onOpenFolder}
152
- onSaveNewFolder={onSaveNewFolder}
153
- onSelectFolder={onSelectFolder}
154
- openFolders={openFolders}
155
- openOnFolderClick={openOnFolderClick}
156
- setFocusedId={setFocusedId}
157
- setSelectedFolder={setSelectedFolder}
158
- targetResource={targetResource}
159
- visibleFolders={visibleFolderIds}
160
- framed={framed}
161
- />
162
- </TreeStructureStyledWrapper>
163
- {editable && (
164
- <AddFolderWrapper>
165
- <Tooltip
166
- tooltip={
167
- canAddFolder
168
- ? t('myNdla.newFolderUnder', {
169
- folderName: selectedFolder?.name,
170
- })
171
- : t('treeStructure.maxFoldersAlreadyAdded')
172
- }>
173
- <AddButton
174
- disabled={!canAddFolder}
175
- aria-label={t('myNdla.newFolder')}
176
- onClick={() => setNewFolderParentId(selectedFolder?.id)}>
177
- {t('myNdla.newFolder')}
178
- </AddButton>
179
- </Tooltip>
180
- </AddFolderWrapper>
181
- )}
182
- </div>
229
+ <TreeStructureWrapper aria-label={label} type={type}>
230
+ {type === 'picker' && (
231
+ <StyledRow isOpen={showTree}>
232
+ <StyledSelectedFolder
233
+ variant="ghost"
234
+ colorTheme="light"
235
+ fontWeight="normal"
236
+ shape="sharp"
237
+ onClick={() => {
238
+ setShowTree(!showTree);
239
+ }}>
240
+ {selectedFolder?.name}
241
+ </StyledSelectedFolder>
242
+ {onNewFolder && showTree && (
243
+ <Tooltip
244
+ tooltip={
245
+ canAddFolder
246
+ ? t('myNdla.newFolderUnder', {
247
+ folderName: selectedFolder?.name,
248
+ })
249
+ : t('treeStructure.maxFoldersAlreadyAdded')
250
+ }>
251
+ <StyledAddFolderButton
252
+ variant="outline"
253
+ shape="pill"
254
+ disabled={!canAddFolder}
255
+ aria-label={
256
+ canAddFolder
257
+ ? t('myNdla.newFolderUnder', {
258
+ folderName: selectedFolder?.name,
259
+ })
260
+ : t('treeStructure.maxFoldersAlreadyAdded')
261
+ }
262
+ onClick={() => setNewFolderParentId(selectedFolder?.id)}>
263
+ <StyledPlus /> {t('myNdla.newFolder')}
264
+ </StyledAddFolderButton>
265
+ </Tooltip>
266
+ )}
267
+ <IconButtonDualStates
268
+ ariaLabelActive={t('treeStructure.hideFolders')}
269
+ ariaLabelInActive={t('treeStructure.showFolders')}
270
+ active={showTree}
271
+ variant="ghost"
272
+ colorTheme="greyLighter"
273
+ inactiveIcon={<ChevronDown />}
274
+ activeIcon={<ChevronUp />}
275
+ size="small"
276
+ onClick={() => {
277
+ setShowTree(!showTree);
278
+ }}
279
+ />
280
+ </StyledRow>
281
+ )}
282
+ {showTree && (
283
+ <ScrollableDiv type={type}>
284
+ <FolderItems
285
+ focusedFolderId={focusedId}
286
+ folders={folders}
287
+ level={0}
288
+ loading={loading}
289
+ selectedFolder={selectedFolder}
290
+ maxLevel={maximumLevelsOfFoldersAllowed}
291
+ newFolderParentId={newFolderParentId}
292
+ onCancelNewFolder={onCancelNewFolder}
293
+ onCloseFolder={onCloseFolder}
294
+ onOpenFolder={onOpenFolder}
295
+ onSaveNewFolder={onSaveNewFolder}
296
+ onSelectFolder={onSelectFolder}
297
+ openFolders={openFolders}
298
+ openOnFolderClick={openOnFolderClick}
299
+ setFocusedId={setFocusedId}
300
+ setSelectedFolder={setSelectedFolder}
301
+ targetResource={targetResource}
302
+ visibleFolders={visibleFolderIds}
303
+ type={type}
304
+ />
305
+ </ScrollableDiv>
306
+ )}
307
+ </TreeStructureWrapper>
308
+ </StyledTreeStructure>
183
309
  );
184
310
  };
185
311
 
@@ -12,8 +12,11 @@ import { MenuItemProps } from '@ndla/button';
12
12
 
13
13
  export interface FolderType extends IFolder {
14
14
  icon?: ReactNode;
15
+ isNavigation?: boolean;
15
16
  }
16
17
 
18
+ export type TreeStructureType = 'normal' | 'navigation' | 'picker';
19
+
17
20
  export interface TreeStructureMenuProps extends Omit<MenuItemProps, 'onClick'> {
18
21
  onClick: (e: MouseEvent<HTMLDivElement> | undefined, folder: FolderType) => void;
19
22
  }
@@ -22,14 +25,15 @@ export interface CommonTreeStructureProps {
22
25
  loading?: boolean;
23
26
  onSelectFolder?: (id: string) => void;
24
27
  openOnFolderClick?: boolean;
25
- menuItems?: TreeStructureMenuProps[];
26
28
  targetResource?: IResource;
27
29
  framed?: boolean;
30
+ type: TreeStructureType;
28
31
  }
29
32
 
30
33
  export interface CommonFolderItemsProps extends CommonTreeStructureProps {
31
34
  focusedFolderId?: string;
32
35
  level: number;
36
+ maxLevel: number;
33
37
  selectedFolder?: FolderType;
34
38
  onCloseFolder: (id: string) => void;
35
39
  onOpenFolder: (id: string) => void;
@@ -19,6 +19,8 @@ const messages = {
19
19
  edit: 'Edit foldername',
20
20
  delete: 'Delete',
21
21
  },
22
+ hideFolders: 'Hide all folders',
23
+ showFolders: 'Show all folders',
22
24
  createFolder: 'Create folder',
23
25
  maxFoldersAlreadyAdded: 'Maximum subfolders reached',
24
26
  newFolder: {
@@ -248,13 +250,6 @@ const messages = {
248
250
  name: 'Follow us',
249
251
  },
250
252
  },
251
- category: {
252
- fellesfag: 'Common',
253
- yrkesfag: 'Vocational',
254
- studiespesialiserende: 'Specialization',
255
- imported: 'Imported subjects',
256
- heading: 'What will you learn?',
257
- },
258
253
  film: {
259
254
  header: 'NDLA film',
260
255
  text: 'NDLA film is a service in collaboration with Norgesfilm. This service allows you to watch a range of feature films, short films, documentaries and series. You can also watch educational films and movie clips. Welcome to the world of cinema!',
@@ -824,18 +819,6 @@ const messages = {
824
819
  text: 'is created by',
825
820
  },
826
821
  },
827
- fagfornyelse: {
828
- frontpage: {
829
- heading: 'Welcome to a sneak peek at Fagfornyelsen at NDLA',
830
- text: 'The new curricula will take effect in the fall 2020. At NDLA we have already started this work. Those responsible for our content make new great learning resources every day, resources that are adapted to the new curricula. On this page you can already see them.',
831
- blogHeading: 'Do you want to know more?',
832
- },
833
- badge: {
834
- heading: 'This page is adapted for Fagfornyelsen 2020',
835
- text: 'The content is in progress. Not what you were looking for?',
836
- linkText: "Go to ndla.no for today's content",
837
- },
838
- },
839
822
  frontPageToolbox: {
840
823
  heading: 'Toolbox',
841
824
  text: 'Do you want to become good at presenting, or do you want to learn to study smarter using the right study technique? Need advice on how to read most effectively for the exam? In the NDLA Toolbox you will find lots of great tips and advice!',
@@ -1007,14 +990,15 @@ const messages = {
1007
990
  folders_plural: '{{count}} Folders',
1008
991
  folder: {
1009
992
  folder: 'Folder',
1010
- delete: 'Delete',
1011
- edit: 'Edit',
993
+ delete: 'Delete folder',
994
+ edit: 'Edit folder',
1012
995
  missingName: 'Folder name required',
1013
996
  folderDeleted: '"{{folderName}}" deleted',
1014
997
  },
1015
998
  tags: '{{count}} tag',
1016
999
  tags_plural: '{{count}} tags',
1017
- confirmDeleteFolder: 'Are you sure you want to delete this folder? This process cannot be undone.',
1000
+ confirmDeleteFolder:
1001
+ 'Are you sure you want to delete this folder? Subfolders of this folder will also be deleted. This action cannot be undone.',
1018
1002
  confirmDeleteTag: 'Are you sure you want to delete this tag? This process cannot be undone.',
1019
1003
  myFolders: 'My folders',
1020
1004
  myTags: 'My tags',
@@ -1035,6 +1019,9 @@ const messages = {
1035
1019
  confirmDeleteAccountButton: 'Delete account',
1036
1020
  myPage: 'My page',
1037
1021
  logout: 'Log out of My NDLA',
1022
+ loginText:
1023
+ 'Log in with Feide to receive access to My NDLA. We ask you not to write offensive or personally sensitive information in text fields. Read our ',
1024
+ loginTextLink: 'privacy policy here',
1038
1025
  loginTerms: 'Log in with Feide to receive access. By logging on your accept your terms of service',
1039
1026
  loginResourcePitch: 'Do you want to favorite this page?',
1040
1027
  loginWelcome: 'Welcome to My NDLA! This page allows you to organize your articles in your <i>own</i> way!',
@@ -19,6 +19,8 @@ const messages = {
19
19
  edit: 'Endre mappenavn',
20
20
  delete: 'Slett',
21
21
  },
22
+ hideFolders: 'Skjul alle mapper',
23
+ showFolders: 'Vis alle mapper',
22
24
  createFolder: 'Lag mappe',
23
25
  maxFoldersAlreadyAdded: 'Maks nivå av undermapper nådd',
24
26
  newFolder: {
@@ -247,13 +249,6 @@ const messages = {
247
249
  name: 'Følg oss',
248
250
  },
249
251
  },
250
- category: {
251
- fellesfag: 'Fellesfag',
252
- yrkesfag: 'Yrkesfag',
253
- studiespesialiserende: 'Studieforberedende',
254
- imported: 'Spolte fag',
255
- heading: 'Hva lærer du?',
256
- },
257
252
  errorDescription: 'Beklager, en feil oppstod under lasting av fagene.',
258
253
  film: {
259
254
  header: 'NDLA film',
@@ -822,18 +817,6 @@ const messages = {
822
817
  text: 'er utarbeidet av',
823
818
  },
824
819
  },
825
- fagfornyelse: {
826
- frontpage: {
827
- heading: 'Velkommen til sniktitt på Fagfornyelsen i NDLA',
828
- text: 'Høsten 2020 og 2021 vil de nye læreplanene tre i kraft. I NDLA har vi startet med dette arbeidet allerede. Våre innholdsansvarlige lager hver dag nye supre læringsressurser som er tilrettelagt for de nye planene. På denne siden kan du se dem allerede nå.',
829
- blogHeading: 'Vil du vite mer?',
830
- },
831
- badge: {
832
- heading: 'Denne siden er tilrettelagt for fagfornyelsen 2020/2021',
833
- text: 'Innholdet er under arbeid. Ikke på jakt etter dette?',
834
- linkText: 'Gå til ndla.no for dagens innhold',
835
- },
836
- },
837
820
  frontPageToolbox: {
838
821
  heading: 'Verktøykassa',
839
822
  text: 'Har du lyst til å bli god til å presentere, eller vil du lære å studere smartere ved hjelp av riktig studieteknikk? Trenger du råd om hvordan du leser mest mulig effektivt til eksamen? I verktøykassa til NDLA finner du masse gode tips og råd!',
@@ -1005,14 +988,15 @@ const messages = {
1005
988
  folders_plural: '{{count}} mapper',
1006
989
  folder: {
1007
990
  folder: 'Mappe',
1008
- delete: 'Slett',
1009
- edit: 'Rediger',
991
+ delete: 'Slett mappe',
992
+ edit: 'Rediger mappe',
1010
993
  missingName: 'Skriv navn på mappe',
1011
994
  folderDeleted: '"{{folderName}}" er slettet',
1012
995
  },
1013
996
  tags: '{{count}} emneknagg',
1014
997
  tags_plural: '{{count}} emneknagger',
1015
- confirmDeleteFolder: 'Er du sikker på at du vil slette mappen? Denne handlingen kan ikke endres.',
998
+ confirmDeleteFolder:
999
+ 'Er du sikker på at du vil slette mappen? Dersom mappen har undermapper vil disse også slettes. Handlingen kan ikke endres.',
1016
1000
  confirmDeleteTag: 'Er du sikker på at du vil slette emneknagg? Denne handlingen kan ikke endres.',
1017
1001
  myFolders: 'Mine mapper',
1018
1002
  myTags: 'Mine emneknagger',
@@ -1034,6 +1018,9 @@ const messages = {
1034
1018
  myPage: 'Min side',
1035
1019
  deleteAccount: 'Slett Min NDLA',
1036
1020
  logout: 'Logg ut av Min NDLA',
1021
+ loginText:
1022
+ 'Logg på med Feide for å få tilgang til Min NDLA. Vi ber om at du ikke skriver noe støtende, personsensitiv informasjon eller andre persondata i tekstfelt. Les vår ',
1023
+ loginTextLink: 'personvernerklæring her',
1037
1024
  loginTerms: 'Logg på med Feide for å få tilgang. Ved å logge på godkjenner du våre vilkår for bruk',
1038
1025
  loginResourcePitch: 'Ønsker du å favorittmerke denne siden?',
1039
1026
  loginWelcome: 'Velkommen til NDLA! Her kan du organisere fagstoffet på <i>din</i> måte!',
@@ -1073,7 +1060,7 @@ const messages = {
1073
1060
  linkCopied: 'Kopiert til utklippstavle',
1074
1061
  addToMyNdla: 'Legg i Min NDLA',
1075
1062
  addedToMyNdla: 'Lagt i Min NDLA',
1076
- addedToFolder: 'Ressurs er lagt i "{{folderName}}"',
1063
+ addedToFolder: 'Ressurs er lagt i ',
1077
1064
  removedFromFolder: 'Fjernet fra "{{folderName}}"',
1078
1065
  titleUpdated: 'Tittel oppdatert',
1079
1066
  tagsUpdated: 'Emneknagger oppdatert',
@@ -19,6 +19,8 @@ const messages = {
19
19
  edit: 'Endre mappenamn',
20
20
  delete: 'Slett',
21
21
  },
22
+ hideFolders: 'Skjul alle mapper',
23
+ showFolders: 'Vis alle mapper',
22
24
  createFolder: 'Lag mappe',
23
25
  maxFoldersAlreadyAdded: 'Maks nivå av undermapper nådd',
24
26
  newFolder: {
@@ -247,13 +249,6 @@ const messages = {
247
249
  name: 'Følg oss',
248
250
  },
249
251
  },
250
- category: {
251
- fellesfag: 'Fellesfag',
252
- yrkesfag: 'Yrkesfag',
253
- studiespesialiserende: 'Studieførebuande',
254
- imported: 'Spolte fag',
255
- heading: 'Kva lærer du?',
256
- },
257
252
  film: {
258
253
  header: 'NDLA film',
259
254
  text: 'NDLA film er ei teneste i samarbeid med Norgesfilm. Denne tenesta lar deg sjå ei rekkje spelefilmar, kortfilmar, dokumentarar og seriar. Du kan òg sjå undervisningsfilm og filmklipp. Velkomen inn i filmen si verd!',
@@ -823,18 +818,6 @@ const messages = {
823
818
  text: 'er utarbeida av',
824
819
  },
825
820
  },
826
- fagfornyelse: {
827
- frontpage: {
828
- heading: 'Velkommen til sniktitt på Fagfornyelsen i NDLA',
829
- text: 'Hausten 2020 og 2021 vil dei nye læreplanane tre i kraft. I NDLA har vi starta dette arbeidet allereie. Dei innhaldsansvarlege i NDLA lagar kvar dag nye supre læringsressursar som er tilrettelagte for dei nye planane. På denne sida kan du sjå dei allereie nå.',
830
- blogHeading: 'Vil du vite meir?',
831
- },
832
- badge: {
833
- heading: 'Denne sida er tilrettelagt for fagfornyelsen 2020/2021',
834
- text: 'Innhaldet er under arbeid. Ikkje på jakt etter dette?',
835
- linkText: 'Gå til ndla.no for dagens innhald',
836
- },
837
- },
838
821
  frontPageToolbox: {
839
822
  heading: 'Verktøykassa',
840
823
  text: 'Har du lyst til å bli god til å presentere, eller vil du lære å studere smartare ved hjelp av riktig studieteknikk? Treng du råd om korleis du les mest mogleg effektivt til eksamen? I verktøykassa til NDLA finn du masse gode tips og råd!',
@@ -1006,14 +989,15 @@ const messages = {
1006
989
  folders_plural: '{{count}} mapper',
1007
990
  folder: {
1008
991
  folder: 'Mappe',
1009
- delete: 'Slett',
1010
- edit: 'Rediger',
992
+ delete: 'Slett mappe',
993
+ edit: 'Rediger mappe',
1011
994
  missingName: 'Skriv namn på mappe',
1012
995
  folderDeleted: '"{{folderName}}" er sletta',
1013
996
  },
1014
997
  tags: '{{count}} emneknagg',
1015
998
  tags_plural: '{{count}} emneknaggar',
1016
- confirmDeleteFolder: 'Er du sikker på at du vil slette mappa? Denne handlinga kan ikkje endrast.',
999
+ confirmDeleteFolder:
1000
+ 'Er du sikker på at du vil slette mappa? Dersom mappa har undermapper vil desse også slettast. Denne handlinga kan ikkje endrast.',
1017
1001
  confirmDeleteTag: 'Er du sikker på at du vil slette tag? Denne handlinga kan ikkje endrast.',
1018
1002
  myFolders: 'Mine mapper',
1019
1003
  myTags: 'Emneknaggane mine',
@@ -1035,6 +1019,9 @@ const messages = {
1035
1019
  myPage: 'Mi side',
1036
1020
  deleteAccount: 'Slett Min NDLA',
1037
1021
  logout: 'Logg ut av Min NDLA',
1022
+ loginText:
1023
+ 'Logg på med Feide for å få tilgang til Min NDLA. Vi ber om at du ikkje skriv noko støtande, personsensitiv informasjon eller andre persondata i tekstfelt. Les vår ',
1024
+ loginTextLink: 'personvernerklæring her',
1038
1025
  loginTerms: 'Logg på med Feide for å få tilgang. Ved å logge på godkjennar du våre vilkår for bruk',
1039
1026
  loginResourcePitch: 'Ønsker du å favorittmerke denne sida?',
1040
1027
  loginWelcome: 'Velkommen til NDLA! Her kan du organisere fagstoffet på <i>din</i> måte!',