diff --git a/SharePointFramework/PortfolioExtensions/.editorconfig b/SharePointFramework/PortfolioExtensions/.editorconfig new file mode 100644 index 000000000..8ffcdc4ec --- /dev/null +++ b/SharePointFramework/PortfolioExtensions/.editorconfig @@ -0,0 +1,25 @@ +# EditorConfig helps developers define and maintain consistent +# coding styles between different editors and IDEs +# editorconfig.org + +root = true + + +[*] + +# change these settings to your own preference +indent_style = space +indent_size = 2 + +# we recommend you to keep these unchanged +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.md] +trim_trailing_whitespace = false + +[{package,bower}.json] +indent_style = space +indent_size = 2 \ No newline at end of file diff --git a/SharePointFramework/PortfolioExtensions/src/components/Footer/Configuration/index.tsx b/SharePointFramework/PortfolioExtensions/src/components/Footer/Configuration/index.tsx new file mode 100644 index 000000000..1aa9c099f --- /dev/null +++ b/SharePointFramework/PortfolioExtensions/src/components/Footer/Configuration/index.tsx @@ -0,0 +1,23 @@ +import strings from 'PortfolioExtensionsStrings' +import React, { FC, useContext } from 'react' +import { FooterContext } from '../context' +import { Button, Tooltip } from '@fluentui/react-components' +import { getFluentIcon } from 'pp365-shared-library' + +export const Configuration: FC = () => { + const context = useContext(FooterContext) + return ( + + + + ) +} diff --git a/SharePointFramework/PortfolioExtensions/src/components/Footer/ConfigurationLink/ConfigurationLink.module.scss b/SharePointFramework/PortfolioExtensions/src/components/Footer/ConfigurationLink/ConfigurationLink.module.scss deleted file mode 100644 index 0f307fea1..000000000 --- a/SharePointFramework/PortfolioExtensions/src/components/Footer/ConfigurationLink/ConfigurationLink.module.scss +++ /dev/null @@ -1,4 +0,0 @@ -.root { - font-size: 12px; - margin: 0 8px 0 0; -} diff --git a/SharePointFramework/PortfolioExtensions/src/components/Footer/ConfigurationLink/index.tsx b/SharePointFramework/PortfolioExtensions/src/components/Footer/ConfigurationLink/index.tsx deleted file mode 100644 index 93119931e..000000000 --- a/SharePointFramework/PortfolioExtensions/src/components/Footer/ConfigurationLink/index.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import { ActionButton } from '@fluentui/react' -import strings from 'PortfolioExtensionsStrings' -import React, { FC, useContext } from 'react' -import { FooterContext } from '../context' - -export const ConfigurationLink: FC = () => { - const context = useContext(FooterContext) - return ( - - ) -} diff --git a/SharePointFramework/PortfolioExtensions/src/components/Footer/Footer.module.scss b/SharePointFramework/PortfolioExtensions/src/components/Footer/Footer.module.scss index ccb0c688d..2f9e6a38b 100644 --- a/SharePointFramework/PortfolioExtensions/src/components/Footer/Footer.module.scss +++ b/SharePointFramework/PortfolioExtensions/src/components/Footer/Footer.module.scss @@ -1,24 +1,17 @@ -.root { - padding: 25px; - height: 25px; +.footer { + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; box-sizing: border-box; + min-height: 65px; + padding: 25px; + background-color: var(--colorNeutralBackground1); + border-top: 1px solid var(--colorNeutralBackground3); - .content { - .left { - float: left; - - .configurationLink, .siteSettingsLink { - font-size: 12px; - margin: 0 8px 0 0; - } - } - .right { - float: right; - - .installVersion { - font-size: 12px; - cursor: help; - } - } - } + .left, .right { + display: flex; + flex-direction: row; + gap: 8px; + } } diff --git a/SharePointFramework/PortfolioExtensions/src/components/Footer/Footer.tsx b/SharePointFramework/PortfolioExtensions/src/components/Footer/Footer.tsx new file mode 100644 index 000000000..6c94c739a --- /dev/null +++ b/SharePointFramework/PortfolioExtensions/src/components/Footer/Footer.tsx @@ -0,0 +1,36 @@ +import React, { FC } from 'react' +import { Configuration } from './Configuration' +import styles from './Footer.module.scss' +import { InstallVersion } from './InstallVersion' +import { PromotedLinks } from './PromotedLinks' +import { FooterContext } from './context' +import { IFooterProps } from './types' +import { useFooter } from './useFooter' +import { SiteSettings } from './SiteSettings' +import { HelpContent } from './HelpContent' +import { FluentProvider, useId, webLightTheme } from '@fluentui/react-components' + +export const Footer: FC = (props) => { + const fluentProviderId = useId('fp-footer') + const footer = useFooter(props) + + return ( + + +
+
+ + + +
+
+ + +
+
+
+
+ ) +} + +export * from './types' diff --git a/SharePointFramework/PortfolioExtensions/src/components/Footer/HelpContent/index.tsx b/SharePointFramework/PortfolioExtensions/src/components/Footer/HelpContent/index.tsx index 3cdc16771..7537ce509 100644 --- a/SharePointFramework/PortfolioExtensions/src/components/Footer/HelpContent/index.tsx +++ b/SharePointFramework/PortfolioExtensions/src/components/Footer/HelpContent/index.tsx @@ -1,22 +1,37 @@ -import { ActionButton } from '@fluentui/react' import strings from 'PortfolioExtensionsStrings' import React, { FC, useContext, useState } from 'react' import { HelpContentModal } from './HelpContentModal' import { FooterContext } from '../context' +import { Button, Tooltip } from '@fluentui/react-components' +import { getFluentIcon } from 'pp365-shared-library' export const HelpContent: FC = () => { const context = useContext(FooterContext) const [showModal, setShowModal] = useState(false) - const isHidden = context.props.helpContent.length === 0 + const isUnavailable = context.props.helpContent.length === 0 + return ( -
- setShowModal(true)} - /> + <> + + + setShowModal(false)} /> -
+ ) } diff --git a/SharePointFramework/PortfolioExtensions/src/components/Footer/InstallVersion/InstallVersion.module.scss b/SharePointFramework/PortfolioExtensions/src/components/Footer/InstallVersion/InstallVersion.module.scss deleted file mode 100644 index aa3719946..000000000 --- a/SharePointFramework/PortfolioExtensions/src/components/Footer/InstallVersion/InstallVersion.module.scss +++ /dev/null @@ -1,5 +0,0 @@ -.root { - font-size: 12px; - cursor: help; - margin: 0 8px 0 0; -} diff --git a/SharePointFramework/PortfolioExtensions/src/components/Footer/InstallVersion/InstallVersionTooltipContent/InstallVersionTooltipContent.module.scss b/SharePointFramework/PortfolioExtensions/src/components/Footer/InstallVersion/InstallVersionTooltipContent/InstallVersionTooltipContent.module.scss index bf7e4d3d8..6f7be23c1 100644 --- a/SharePointFramework/PortfolioExtensions/src/components/Footer/InstallVersion/InstallVersionTooltipContent/InstallVersionTooltipContent.module.scss +++ b/SharePointFramework/PortfolioExtensions/src/components/Footer/InstallVersion/InstallVersionTooltipContent/InstallVersionTooltipContent.module.scss @@ -1,12 +1,33 @@ -.root { - padding: 10px; - width: 450px; - box-sizing: border-box; - - .footer { - margin: 20px 0 0 0; - .seeAllInstallationsLink { - color: inherit; - } +.lastInstall { + display: flex; + flex-direction: column; + gap: 6px; + min-width: fit-content; + box-sizing: border-box; + + .content { + display: flex; + gap: 12px; + justify-content: space-between; + } + + .divider { + padding: 12px 0; + } + + .footer { + display: flex; + flex-direction: column; + gap: 12px; + + .button { + justify-content: flex-start; + width: fit-content; + + .label { + font-weight: var(--fontWeightRegular); + margin: 0; + } } + } } diff --git a/SharePointFramework/PortfolioExtensions/src/components/Footer/InstallVersion/InstallVersionTooltipContent/LatestGitHubRelease/LatestGitHubRelease.module.scss b/SharePointFramework/PortfolioExtensions/src/components/Footer/InstallVersion/InstallVersionTooltipContent/LatestGitHubRelease/LatestGitHubRelease.module.scss index d9a7e954a..df2e38e56 100644 --- a/SharePointFramework/PortfolioExtensions/src/components/Footer/InstallVersion/InstallVersionTooltipContent/LatestGitHubRelease/LatestGitHubRelease.module.scss +++ b/SharePointFramework/PortfolioExtensions/src/components/Footer/InstallVersion/InstallVersionTooltipContent/LatestGitHubRelease/LatestGitHubRelease.module.scss @@ -1,16 +1,37 @@ -.root { - margin: 15px 0 0 0; +.latestRelease { + display: flex; + flex-direction: column; + gap: 12px; - .label { - font-weight: 600; - } - - .latestGitHubReleaseLink { + .content { + display: flex; + gap: 12px; + justify-content: space-between; + + .version { + display: flex; + gap: 4px; + + .latestGitHubReleaseLink { color: inherit; - } + } - .versionComparisonIcon { + .versionComparisonIcon { margin: 0 3px; vertical-align: middle; + cursor: default; + } + + } + } + + .button { + justify-content: flex-start; + width: fit-content; + + .label { + font-weight: var(--fontWeightRegular); + margin: 0; } + } } diff --git a/SharePointFramework/PortfolioExtensions/src/components/Footer/InstallVersion/InstallVersionTooltipContent/LatestGitHubRelease/index.tsx b/SharePointFramework/PortfolioExtensions/src/components/Footer/InstallVersion/InstallVersionTooltipContent/LatestGitHubRelease/index.tsx index ab2337179..8ab56cd46 100644 --- a/SharePointFramework/PortfolioExtensions/src/components/Footer/InstallVersion/InstallVersionTooltipContent/LatestGitHubRelease/index.tsx +++ b/SharePointFramework/PortfolioExtensions/src/components/Footer/InstallVersion/InstallVersionTooltipContent/LatestGitHubRelease/index.tsx @@ -1,9 +1,11 @@ -import { ActionButton, Icon, Link } from '@fluentui/react' +import { Icon } from '@fluentui/react' import strings from 'PortfolioExtensionsStrings' import React, { FC } from 'react' import { ILatestGitHubReleaseProps } from './types' import styles from './LatestGitHubRelease.module.scss' import { useLatestGitHubRelease } from './useLatestGitHubRelease' +import { Button, Label, Link, Tooltip } from '@fluentui/react-components' +import { getFluentIcon } from 'pp365-shared-library' /** * Component for displaying the latest GitHub release and a @@ -14,30 +16,37 @@ export const LatestGitHubRelease: FC = (props) => { useLatestGitHubRelease(props) return ( -
-
- {strings.LatestGitHubReleaseLabel} - - - {latestGitHubVersion.toString()} - - - - +
+
+ + : +
+ + + {latestGitHubVersion.toString()} + + + + + + + +
) diff --git a/SharePointFramework/PortfolioExtensions/src/components/Footer/InstallVersion/InstallVersionTooltipContent/index.tsx b/SharePointFramework/PortfolioExtensions/src/components/Footer/InstallVersion/InstallVersionTooltipContent/index.tsx index 31eb7b770..22db7db5c 100644 --- a/SharePointFramework/PortfolioExtensions/src/components/Footer/InstallVersion/InstallVersionTooltipContent/index.tsx +++ b/SharePointFramework/PortfolioExtensions/src/components/Footer/InstallVersion/InstallVersionTooltipContent/index.tsx @@ -1,9 +1,11 @@ -import { format, Link } from '@fluentui/react' +import { format } from '@fluentui/react' import strings from 'PortfolioExtensionsStrings' import React, { FC, useContext } from 'react' import { FooterContext } from '../../context' import styles from './InstallVersionTooltipContent.module.scss' import { LatestGitHubRelease } from './LatestGitHubRelease' +import { WebPartTitle, formatDate, getFluentIcon } from 'pp365-shared-library' +import { Button, Divider, Label } from '@fluentui/react-components' /** * Component for displaying information about the latest installation @@ -12,50 +14,49 @@ import { LatestGitHubRelease } from './LatestGitHubRelease' export const InstallVersionTooltipContent: FC = () => { const context = useContext(FooterContext) const latestEntry = context.latestEntry - const dateTimeFormatOptions: Intl.DateTimeFormatOptions = { - weekday: 'long', - year: 'numeric', - month: 'long', - day: 'numeric', - hour: 'numeric', - minute: 'numeric' - } + return ( -
-

{strings.LastInstallHeaderText}

-
- {strings.InstallStartTimeLabel}:{' '} - {latestEntry.installStartTime.toLocaleDateString('no', dateTimeFormatOptions)} -
-
- {strings.InstallEndTimeLabel}:{' '} - {latestEntry.installEndTime.toLocaleDateString('no', dateTimeFormatOptions)} -
-
- {strings.InstallDurationLabel}:{' '} - {format(strings.InstallDurationValueTemplate, latestEntry.installDuration)} +
+ +
+ + : + + {formatDate(latestEntry.installedDate)}
-
- {strings.InstallVersionLabel}: {latestEntry.fullInstallVersion} -
-
- {strings.InstallCommandLabel}: {latestEntry.installCommand} +
+ + : + + {latestEntry.fullInstallVersion}
{latestEntry.installChannel && ( -
- {strings.InstallChannelLabel}: {latestEntry.installChannel} +
+ + : + + {latestEntry.installChannel}
)} +
-
- - {strings.SeeAllInstallationsLinkText} - -
+
diff --git a/SharePointFramework/PortfolioExtensions/src/components/Footer/InstallVersion/index.tsx b/SharePointFramework/PortfolioExtensions/src/components/Footer/InstallVersion/index.tsx index 8fe001ca9..692760edf 100644 --- a/SharePointFramework/PortfolioExtensions/src/components/Footer/InstallVersion/index.tsx +++ b/SharePointFramework/PortfolioExtensions/src/components/Footer/InstallVersion/index.tsx @@ -1,23 +1,28 @@ -import { ActionButton, TooltipHost } from '@fluentui/react' import React, { FC, useContext } from 'react' import { FooterContext } from '../context' -import styles from './InstallVersion.module.scss' import { InstallVersionTooltipContent } from './InstallVersionTooltipContent' +import { Button, Popover, PopoverSurface, PopoverTrigger, Tooltip } from '@fluentui/react-components' +import { getFluentIcon } from 'pp365-shared-library' +import strings from 'PortfolioExtensionsStrings' export const InstallVersion: FC = () => { const context = useContext(FooterContext) return ( - + + + + + + + + + + ) } diff --git a/SharePointFramework/PortfolioExtensions/src/components/Footer/PromotedLinks/PromotedLinks.module.scss b/SharePointFramework/PortfolioExtensions/src/components/Footer/PromotedLinks/PromotedLinks.module.scss deleted file mode 100644 index 66b19f80a..000000000 --- a/SharePointFramework/PortfolioExtensions/src/components/Footer/PromotedLinks/PromotedLinks.module.scss +++ /dev/null @@ -1,12 +0,0 @@ -.root { - font-size: 12px; -} - -.tooltipHost { - font-size: 12px; -} - -.tooltipContent { - padding: 10px 15px; - font-size: 12px; -} \ No newline at end of file diff --git a/SharePointFramework/PortfolioExtensions/src/components/Footer/PromotedLinks/index.tsx b/SharePointFramework/PortfolioExtensions/src/components/Footer/PromotedLinks/index.tsx index 8ae834171..42aa8f50d 100644 --- a/SharePointFramework/PortfolioExtensions/src/components/Footer/PromotedLinks/index.tsx +++ b/SharePointFramework/PortfolioExtensions/src/components/Footer/PromotedLinks/index.tsx @@ -1,29 +1,58 @@ -import { ActionButton, Link, TooltipHost } from '@fluentui/react' import strings from 'PortfolioExtensionsStrings' import React, { FC, useContext } from 'react' import { FooterContext } from '../context' -import styles from './PromotedLinks.module.scss' +import { + Link, + Menu, + MenuButton, + MenuItem, + MenuList, + MenuPopover, + MenuTrigger, + Tooltip +} from '@fluentui/react-components' +import { getFluentIcon } from 'pp365-shared-library' export const PromotedLinks: FC = () => { const context = useContext(FooterContext) return ( - + + + + {strings.LinksListDescription} + + {strings.LinksListName} + + + } + > + + {strings.LinksListLabel} + + + + + + {context.props.links.map((link, idx) => ( -
- {link.Description} -
+ window.open(link.Url, '_blank')} + > + {link.Description} + ))} -
- } - > - - + + + ) } diff --git a/SharePointFramework/PortfolioExtensions/src/components/Footer/SiteSettings/index.tsx b/SharePointFramework/PortfolioExtensions/src/components/Footer/SiteSettings/index.tsx new file mode 100644 index 000000000..da6ebc49d --- /dev/null +++ b/SharePointFramework/PortfolioExtensions/src/components/Footer/SiteSettings/index.tsx @@ -0,0 +1,26 @@ +import strings from 'PortfolioExtensionsStrings' +import React, { FC, useContext } from 'react' +import { FooterContext } from '../context' +import { Button, Tooltip } from '@fluentui/react-components' +import { getFluentIcon } from 'pp365-shared-library' + +export const SiteSettings: FC = () => { + const context = useContext(FooterContext) + const isHidden = context.props.portalUrl !== context.props.pageContext.web.absoluteUrl + return ( +
+ + + +
+ ) +} diff --git a/SharePointFramework/PortfolioExtensions/src/components/Footer/SiteSettingsLink/SiteSettingsLink.module.scss b/SharePointFramework/PortfolioExtensions/src/components/Footer/SiteSettingsLink/SiteSettingsLink.module.scss deleted file mode 100644 index 040309df0..000000000 --- a/SharePointFramework/PortfolioExtensions/src/components/Footer/SiteSettingsLink/SiteSettingsLink.module.scss +++ /dev/null @@ -1,5 +0,0 @@ -.root { - display: inline-block; - font-size: 12px; - margin: 0 8px 0 0; -} diff --git a/SharePointFramework/PortfolioExtensions/src/components/Footer/SiteSettingsLink/index.tsx b/SharePointFramework/PortfolioExtensions/src/components/Footer/SiteSettingsLink/index.tsx deleted file mode 100644 index 8cc980b0c..000000000 --- a/SharePointFramework/PortfolioExtensions/src/components/Footer/SiteSettingsLink/index.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import { ActionButton } from '@fluentui/react' -import strings from 'PortfolioExtensionsStrings' -import React, { FC, useContext } from 'react' -import { FooterContext } from '../context' - -export const SiteSettingsLink: FC = () => { - const context = useContext(FooterContext) - const isHidden = context.props.portalUrl !== context.props.pageContext.web.absoluteUrl - return ( -
- -
- ) -} diff --git a/SharePointFramework/PortfolioExtensions/src/components/Footer/index.tsx b/SharePointFramework/PortfolioExtensions/src/components/Footer/index.tsx index 262358cbb..c9482951c 100644 --- a/SharePointFramework/PortfolioExtensions/src/components/Footer/index.tsx +++ b/SharePointFramework/PortfolioExtensions/src/components/Footer/index.tsx @@ -1,33 +1,2 @@ -import React, { FC } from 'react' -import { ConfigurationLink } from './ConfigurationLink' -import styles from './Footer.module.scss' -import { InstallVersion } from './InstallVersion' -import { PromotedLinks } from './PromotedLinks' -import { FooterContext } from './context' -import { IFooterProps } from './types' -import { useFooter } from './useFooter' -import { SiteSettingsLink } from './SiteSettingsLink' -import { HelpContent } from './HelpContent' - -export const Footer: FC = (props) => { - const footer = useFooter(props) - return ( - -
-
-
- - - -
-
- - -
-
-
-
- ) -} - +export * from './Footer' export * from './types' diff --git a/SharePointFramework/PortfolioExtensions/src/extensions/footer/manifest.json b/SharePointFramework/PortfolioExtensions/src/extensions/footer/manifest.json index 8b0b69e81..9acb83a0e 100644 --- a/SharePointFramework/PortfolioExtensions/src/extensions/footer/manifest.json +++ b/SharePointFramework/PortfolioExtensions/src/extensions/footer/manifest.json @@ -1,6 +1,6 @@ { "$schema": "https://developer.microsoft.com/json-schemas/spfx/client-side-extension-manifest.schema.json", - "id": "84f27cec-ffde-4e00-a4cf-25c69f691054", + "id": "65d27710-49a9-4492-a4ec-3ac4f1e798d2", "alias": "Footer", "componentType": "Extension", "extensionType": "ApplicationCustomizer", diff --git a/SharePointFramework/PortfolioExtensions/src/extensions/footer/types.ts b/SharePointFramework/PortfolioExtensions/src/extensions/footer/types.ts index 83247da6f..4c420f6ca 100644 --- a/SharePointFramework/PortfolioExtensions/src/extensions/footer/types.ts +++ b/SharePointFramework/PortfolioExtensions/src/extensions/footer/types.ts @@ -8,24 +8,9 @@ export interface IFooterApplicationCustomizerProperties { export class InstallationEntry { /** - * Install command + * Install date */ - public installCommand: string - - /** - * Install start time - */ - public installStartTime: Date - - /** - * Install end time - */ - public installEndTime: Date - - /** - * Install duration in minutes - */ - public installDuration: number + public installedDate: Date /** * Full install version including git hash (format: `v1.2.3-abcdef`) @@ -48,11 +33,7 @@ export class InstallationEntry { * @param entryItem Item from the installation entry */ constructor(entryItem: Record) { - this.installCommand = entryItem.InstallCommand - this.installStartTime = new Date(entryItem.InstallStartTime) - this.installEndTime = new Date(entryItem.InstallEndTime) - const installDurationMs = this.installEndTime.getTime() - this.installStartTime.getTime() - this.installDuration = Math.round(((installDurationMs % 86400000) % 3600000) / 60000) + this.installedDate = new Date(entryItem.InstallEndTime) this.fullInstallVersion = entryItem.InstallVersion this.installVersion = Version.tryParse( this.fullInstallVersion.substring(0, this.fullInstallVersion.lastIndexOf('.')) diff --git a/SharePointFramework/PortfolioExtensions/src/loc/_/en-us.js b/SharePointFramework/PortfolioExtensions/src/loc/_/en-us.js index c65295e25..0845a66b5 100644 --- a/SharePointFramework/PortfolioExtensions/src/loc/_/en-us.js +++ b/SharePointFramework/PortfolioExtensions/src/loc/_/en-us.js @@ -21,18 +21,14 @@ define([], function () { IdeaProjectDataTitle: 'Prosjektdata', InstallationLogListName: 'Installasjonslogg', InstallChannelLabel: 'Installation channel', - InstallCommandLabel: 'Installation command', - InstallDurationLabel: 'Installation duration', - InstallDurationValueTemplate: '{0} minutes', - InstallEndTimeLabel: 'Installation end time', - InstallStartTimeLabel: 'Installation start time', + InstalledDateLabel: 'Installation date', InstallVersionLabel: 'Version', LastInstallHeaderText: 'Last installation', LatestGitHubReleaseDownloadButtonText: 'Download the latest release from GitHub', LatestGitHubReleaseIsNewerText: 'A newer version is available on GitHub', LatestGitHubReleaseIsOlderText: 'The version installed is newer than the latest release from GitHub', LatestGitHubReleaseIsSameText: 'The version installed is the latest release from GitHub', - LatestGitHubReleaseLabel: 'Latest release from GitHub:', + LatestGitHubReleaseLabel: 'Latest release from GitHub', LatestGitHubReleaseLinkTitle: 'See the latest release on GitHub', LinksListName: 'Lenker', LinksListText: 'Useful links', diff --git a/SharePointFramework/PortfolioExtensions/src/loc/myStrings.d.ts b/SharePointFramework/PortfolioExtensions/src/loc/myStrings.d.ts index 217d74cd1..2b2fcccfa 100644 --- a/SharePointFramework/PortfolioExtensions/src/loc/myStrings.d.ts +++ b/SharePointFramework/PortfolioExtensions/src/loc/myStrings.d.ts @@ -7,10 +7,14 @@ declare interface IPortfolioExtensionsStrings { CloseLabel: string CommentLabel: string CommentLabelPlaceholder: string - ConfigurationLinkText: string + ConfigurationDescription: string + ConfigurationLabel: string ConsiderationChoice: string CreateLabel: string - HelpContentLinkText: string + HelpContentAvailableDescription: string + HelpContentAvailableLabel: string + HelpContentUnavailableDescription: string + HelpContentUnavailableLabel: string HelpContentListName: string IdeaAlreadyApproved: string IdeaConfigurationTitle: string @@ -22,13 +26,10 @@ declare interface IPortfolioExtensionsStrings { IdeaProjectDataTitle: string InstallationLogListName: string InstallChannelLabel: string - InstallCommandLabel: string - InstallDurationLabel: string - InstallDurationValueTemplate: string - InstallEndTimeLabel: string - InstallStartTimeLabel: string + InstalledDateLabel: string InstallVersionLabel: string LastInstallHeaderText: string + LastInstallDescription: string LatestGitHubReleaseDownloadButtonText: string LatestGitHubReleaseIsNewerText: any LatestGitHubReleaseIsOlderText: any @@ -36,13 +37,15 @@ declare interface IPortfolioExtensionsStrings { LatestGitHubReleaseLabel: string LatestGitHubReleaseLinkTitle: string LinksListName: string - LinksListText: ReactNode + LinksListDescription: string + LinksListLabel: string RejectChoice: string SeeAllInstallationsLinkText: string SetRecommendationDefaultDescription: string SetRecommendationSubtitle: string SetRecommendationTitle: string - SiteSettingsLinkText: ReactNode + SiteSettingsDescription: string + SiteSettingsLabel: string SubmitLabel: string } diff --git a/SharePointFramework/PortfolioExtensions/src/loc/nb-no.js b/SharePointFramework/PortfolioExtensions/src/loc/nb-no.js index f885a42b4..12b242058 100644 --- a/SharePointFramework/PortfolioExtensions/src/loc/nb-no.js +++ b/SharePointFramework/PortfolioExtensions/src/loc/nb-no.js @@ -8,10 +8,14 @@ define([], function () { CloseLabel: 'Lukk', CommentLabel: 'Kommentar', CommentLabelPlaceholder: 'Kommentar til valg...', - ConfigurationLinkText: 'Konfigurasjon av Prosjektportalen', + ConfigurationDescription: 'Gå til konfigurasjonssiden for Prosjektportalen', + ConfigurationLabel: 'Konfigurasjon av Prosjektportalen', ConsiderationChoice: 'Under vurdering', CreateLabel: 'Opprett', - HelpContentLinkText: 'Hjelp tilgjengelig', + HelpContentAvailableDescription: 'Åpne hjelpedialog for denne siden', + HelpContentAvailableLabel: 'Hjelp tilgjengelig', + HelpContentUnavailableDescription: 'Denne siden har ingen hjelpeinnhold, dersom du mener det burde vært hjelpeinnhold her, vennligst kontakt din administrator', + HelpContentUnavailableLabel: 'Hjelp utilgjengelig', HelpContentListName: 'Hjelpeinnhold', IdeaAlreadyApproved: 'Denne ideen er allerede godkjent', IdeaConfigurationTitle: 'Idékonfigurasjon', @@ -23,27 +27,26 @@ define([], function () { IdeaProjectDataTitle: 'Prosjektdata', InstallationLogListName: 'Installasjonslogg', InstallChannelLabel: 'Installasjonskanal', - InstallCommandLabel: 'Installasjonskommando', - InstallDurationLabel: 'Installasjonsvarighet', - InstallDurationValueTemplate: '{0} minutter', - InstallEndTimeLabel: 'Sluttidspunkt for installasjon', - InstallStartTimeLabel: 'Starttidspunkt for installasjon', + InstalledDateLabel: 'Installasjonsdato', InstallVersionLabel: 'Versjon', LastInstallHeaderText: 'Siste installasjon', + LastInstallDescription: 'Her er en oversikt over siste installasjon av Prosjektportalen. Helt nederst finner du informasjon om siste release fra GitHub.', LatestGitHubReleaseDownloadButtonText: 'Last ned siste release fra GitHub', LatestGitHubReleaseIsNewerText: 'En nyere versjon er tilgjengelig på GitHub', LatestGitHubReleaseIsOlderText: 'Versjonen som er installert er nyere enn siste release fra GitHub', LatestGitHubReleaseIsSameText: 'Versjonen som er installert er siste release fra GitHub', - LatestGitHubReleaseLabel: 'Siste release fra GitHub: ', + LatestGitHubReleaseLabel: 'Siste release fra GitHub', LatestGitHubReleaseLinkTitle: 'Se siste release på GitHub', LinksListName: 'Lenker', - LinksListText: 'Nyttige lenker', + LinksListDescription: 'Lenker til nyttige sider. Lenkene kan konfigureres her: ', + LinksListLabel: 'Nyttige lenker', RejectChoice: 'Avvis', SeeAllInstallationsLinkText: 'Se alle installasjoner', SetRecommendationDefaultDescription: 'Dersom ideen blir godkjent, vil det bli opprettet en detaljert idé-side for ideen og et element i Idébehandlingslisten.;Dersom ideen blir godkjent, vil det være mulig å opprette prosjektdata som kan bli brukt for provisjonering av området.;Tilknytt prosjektdata til ideen for å synkronisere data til et prosjekt senere. Når prosjektdata er opprettet, er det viktig å fylle ut ønsket metadata, deretter legge inn url for prosjektet, dette gjør at metadata synkroniseres til prosjektet ved provisjonering. Url til prosjektet kan enten fylles inn manuelt etter at et prosjekt har fått URL eller via en bestillingsløsning.', SetRecommendationSubtitle: 'Velg anbefaling for: {0}', SetRecommendationTitle: 'Sett anbefaling', - SiteSettingsLinkText: 'Områdeinnstillinger', + SiteSettingsDescription: 'Vis alle områdeinnstillinger for Porteføljeområdet', + SiteSettingsLabel: 'Områdeinnstillinger', SubmitLabel: 'Send' } }) diff --git a/SharePointFramework/ProjectExtensions/.editorconfig b/SharePointFramework/ProjectExtensions/.editorconfig new file mode 100644 index 000000000..8ffcdc4ec --- /dev/null +++ b/SharePointFramework/ProjectExtensions/.editorconfig @@ -0,0 +1,25 @@ +# EditorConfig helps developers define and maintain consistent +# coding styles between different editors and IDEs +# editorconfig.org + +root = true + + +[*] + +# change these settings to your own preference +indent_style = space +indent_size = 2 + +# we recommend you to keep these unchanged +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.md] +trim_trailing_whitespace = false + +[{package,bower}.json] +indent_style = space +indent_size = 2 \ No newline at end of file diff --git a/SharePointFramework/shared-library/.editorconfig b/SharePointFramework/shared-library/.editorconfig new file mode 100644 index 000000000..4e31a94b2 --- /dev/null +++ b/SharePointFramework/shared-library/.editorconfig @@ -0,0 +1,25 @@ +# EditorConfig helps developers define and maintain consistent +# coding styles between different editors and IDEs +# editorconfig.org + +root = true + + +[*] + +# change these settings to your own preference +indent_style = space +indent_size = 2 + +# we recommend you to keep these unchanged +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.md] +trim_trailing_whitespace = false + +[{package,bower}.json] +indent_style = space +indent_size = 2 diff --git a/SharePointFramework/shared-library/src/icons/iconCatalog.ts b/SharePointFramework/shared-library/src/icons/iconCatalog.ts index f8975e562..5a14a8374 100644 --- a/SharePointFramework/shared-library/src/icons/iconCatalog.ts +++ b/SharePointFramework/shared-library/src/icons/iconCatalog.ts @@ -85,6 +85,16 @@ import { HistoryRegular, ImageFilled, ImageRegular, + SettingsFilled, + SettingsRegular, + ContentSettingsFilled, + ContentSettingsRegular, + BoxToolboxFilled, + BoxToolboxRegular, + QuestionCircleFilled, + QuestionCircleRegular, + ArrowDownloadRegular, + ArrowDownloadFilled, CircleFilled, CircleRegular, DismissCircleRegular, @@ -267,6 +277,26 @@ export const iconCatalog = { regular: PeopleCommunityRegular, filled: PeopleCommunityFilled }, + Settings: { + regular: SettingsRegular, + filled: SettingsFilled + }, + ContentSettings: { + regular: ContentSettingsRegular, + filled: ContentSettingsFilled + }, + BoxToolbox: { + regular: BoxToolboxRegular, + filled: BoxToolboxFilled + }, + QuestionCircle: { + regular: QuestionCircleRegular, + filled: QuestionCircleFilled + }, + ArrowDownload: { + regular: ArrowDownloadRegular, + filled: ArrowDownloadFilled + }, Circle: { regular: CircleRegular, filled: CircleFilled diff --git a/Templates/Portfolio/Objects/ClientSidePages/Konfigurasjon.xml b/Templates/Portfolio/Objects/ClientSidePages/Konfigurasjon.xml index 483139cb7..a847f8746 100644 --- a/Templates/Portfolio/Objects/ClientSidePages/Konfigurasjon.xml +++ b/Templates/Portfolio/Objects/ClientSidePages/Konfigurasjon.xml @@ -5,10 +5,10 @@ - - + + - +