From 77d12c2072a21f8970c34c25af94530304bf6602 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Janis=20Da=CC=88hne?= <janis.daehne@informatik.uni-halle.de>
Date: Mon, 9 Oct 2023 16:30:39 +0200
Subject: [PATCH] - version bump - login overlay now shows a link to
 documentation - fixed node require ts issue

---
 package.json                                             | 2 +-
 src/components/loggerPanel/loggerPanel.tsx               | 1 +
 src/components/login/loginOverlay.tsx                    | 9 +++++++++
 src/components/login/styles.styl                         | 4 ++--
 src/components/sites/dashboardSite/headerBarContent.tsx  | 4 +---
 .../sites/editCustomProjectSite/headerBarContent.tsx     | 1 +
 .../exerciseEditorSite/assetsPanel/assetsPanelView.tsx   | 1 +
 .../exerciseSyntaxHelpPanelView.tsx                      | 3 ++-
 .../sites/exerciseEditorSite/headerBarContent.tsx        | 1 +
 src/components/sites/guidesSite/exerciseSyntaxSite.tsx   | 3 ++-
 src/components/sites/guidesSite/testSyntaxSite.tsx       | 3 ++-
 .../submissionsSite/exportCsvDialog/exportCsvDialog.tsx  | 1 +
 src/components/sites/manageTagsSite/manageTagsSite.tsx   | 1 +
 src/constants.ts                                         | 4 +++-
 src/helpers/cryptoHelper.ts                              | 1 +
 src/helpers/markdownHelper.ts                            | 3 ++-
 src/index.tsx                                            | 1 +
 src/setup.ts                                             | 1 +
 static_pages/about/about.html                            | 2 +-
 19 files changed, 34 insertions(+), 12 deletions(-)

diff --git a/package.json b/package.json
index ed6398c0..90720636 100644
--- a/package.json
+++ b/package.json
@@ -5,7 +5,7 @@
   "scripts": {
     "vendor": "webpack --config vendor.webpack.config.js",
     "dev": "echo-cli \"Make sure the vendor dll file is up-to-date... recreate if some npm module added/removed ... then add/remove it from vendor.webpack.config.js\" && webpack-dev-server",
-    "build": "echo-cli \" --- Don't forget to increment the version string in constants.ts > versionString ---\" && tsc static_pages/firstExternalLoginPage/firstLoginExternalLogin.ts && tsc static_pages/about/about.ts && node --max-old-space-size=4096 node_modules/webpack/bin/webpack.js --config webpack.config.dist.js",
+    "build": "export NODE_OPTIONS=--openssl-legacy-provider && echo-cli \" --- Don't forget to increment the version string in constants.ts > versionString ---\" && tsc static_pages/firstExternalLoginPage/firstLoginExternalLogin.ts && tsc static_pages/about/about.ts && node --max-old-space-size=4096 node_modules/webpack/bin/webpack.js --config webpack.config.dist.js",
     "test": "echo-cli \"Error: no test specified\" && exit 1",
     "size": "webpack -p --progress"
   },
diff --git a/src/components/loggerPanel/loggerPanel.tsx b/src/components/loggerPanel/loggerPanel.tsx
index f88cd6b6..2d191910 100644
--- a/src/components/loggerPanel/loggerPanel.tsx
+++ b/src/components/loggerPanel/loggerPanel.tsx
@@ -19,6 +19,7 @@ import {isProduction} from '../../../debug'
 
 //const css = require('./styles.styl');
 
+declare var require: any
 const fileSaver = require('file-saver');
 
 export interface MyProps {
diff --git a/src/components/login/loginOverlay.tsx b/src/components/login/loginOverlay.tsx
index 1873acdf..cd68c2d6 100644
--- a/src/components/login/loginOverlay.tsx
+++ b/src/components/login/loginOverlay.tsx
@@ -151,6 +151,15 @@ class LoginOverlay extends React.Component<Props, any> {
                   <Icon className="mar-left-half" name="external alternate"/>
                 </a>
 
+                <a href={constants.userGuideLinkPath} target="_blank">
+                  <span className="mar-left-half">
+                    {
+                      getI18n(this.props.langId, 'Documentation')
+                    }
+                  </span>
+                    <Icon className="mar-left-half" name="external alternate"/>
+                </a>
+
                 <a href={constants.aboutPageLinkPath} target="_blank">
                     <span className="mar-left-half">
                       {
diff --git a/src/components/login/styles.styl b/src/components/login/styles.styl
index 1f44d68f..601ec208 100644
--- a/src/components/login/styles.styl
+++ b/src/components/login/styles.styl
@@ -177,7 +177,7 @@ $loginOverlayBgImage = linear-gradient(120deg, #f6d365 0%, #fda085 100%); //line
 
 }
 
-$frostedGlassLoginOverlayBottomBarWidth = 550px
+$frostedGlassLoginOverlayBottomBarWidth = 690px
 $frostedGlassLoginOverlayBottomBarHeight = 40px
 $frostedGlassLoginOverlayBottomBarPos = 25px
 
@@ -194,7 +194,7 @@ $frostedGlassLoginOverlayBottomBarPos = 25px
   .frosted-glass {
     display flex
 
-    width: 550px;
+    width: 690px;
     //box-shadow: 0 0 1rem 0 rgba(0, 0, 0, .2);
     border-radius: 5px;
     position: relative;
diff --git a/src/components/sites/dashboardSite/headerBarContent.tsx b/src/components/sites/dashboardSite/headerBarContent.tsx
index 8e47f455..a25fbf4f 100644
--- a/src/components/sites/dashboardSite/headerBarContent.tsx
+++ b/src/components/sites/dashboardSite/headerBarContent.tsx
@@ -9,8 +9,6 @@ import {returntypeof} from 'react-redux-typescript';
 import {RootState} from "../../../state/reducers";
 import CommonHeaderBarContentWrapper from '../../commonHeaderBarContentWrapper'
 
-const fileSaver = require('file-saver');
-
 //const css = require('./styles.styl');
 
 export interface MyProps {
@@ -58,4 +56,4 @@ class HeaderBar extends React.Component<Props, any> {
   }
 }
 
-export default connect(mapStateToProps, mapDispatchToProps)(HeaderBar)
\ No newline at end of file
+export default connect(mapStateToProps, mapDispatchToProps)(HeaderBar)
diff --git a/src/components/sites/editCustomProjectSite/headerBarContent.tsx b/src/components/sites/editCustomProjectSite/headerBarContent.tsx
index 524a58c2..08e352fe 100644
--- a/src/components/sites/editCustomProjectSite/headerBarContent.tsx
+++ b/src/components/sites/editCustomProjectSite/headerBarContent.tsx
@@ -43,6 +43,7 @@ import {getI18n} from "../../../../i18n/i18nRoot";
 import * as constants from '../../../constants'
 import Logger from '../../../helpers/logger'
 
+declare var require: any
 const fileSaver = require('file-saver');
 
 //const css = require('./styles.styl');
diff --git a/src/components/sites/exerciseEditorSite/assetsPanel/assetsPanelView.tsx b/src/components/sites/exerciseEditorSite/assetsPanel/assetsPanelView.tsx
index 94ee71af..5eefbf62 100644
--- a/src/components/sites/exerciseEditorSite/assetsPanel/assetsPanelView.tsx
+++ b/src/components/sites/exerciseEditorSite/assetsPanel/assetsPanelView.tsx
@@ -17,6 +17,7 @@ import {assetPrefix} from '../../../../constants'
 import Logger from '../../../../helpers/logger'
 import {orderBy} from 'lodash-es'
 
+declare var require: any
 const fileSaver = require('file-saver');
 
 //const css = require('./styles.styl');
diff --git a/src/components/sites/exerciseEditorSite/exerciseSyntaxHelpPanel/exerciseSyntaxHelpPanelView.tsx b/src/components/sites/exerciseEditorSite/exerciseSyntaxHelpPanel/exerciseSyntaxHelpPanelView.tsx
index 7385d91d..9e9c796e 100644
--- a/src/components/sites/exerciseEditorSite/exerciseSyntaxHelpPanel/exerciseSyntaxHelpPanelView.tsx
+++ b/src/components/sites/exerciseEditorSite/exerciseSyntaxHelpPanel/exerciseSyntaxHelpPanelView.tsx
@@ -32,6 +32,7 @@ const stateProps = returntypeof(mapStateToProps);
 const dispatchProps = returntypeof(mapDispatchToProps);
 type Props = typeof stateProps & typeof dispatchProps;
 
+declare var require: any
 const markdown = require('../../../../questionSystem/exerciseQuestionSyntaxGuide.md')
 const helpMarkdown = markdownIt.render(markdown)
 
@@ -52,4 +53,4 @@ class exerciseSyntaxHelpPanelView extends React.Component<Props, any> {
   }
 }
 
-export default connect(mapStateToProps, mapDispatchToProps)(exerciseSyntaxHelpPanelView)
\ No newline at end of file
+export default connect(mapStateToProps, mapDispatchToProps)(exerciseSyntaxHelpPanelView)
diff --git a/src/components/sites/exerciseEditorSite/headerBarContent.tsx b/src/components/sites/exerciseEditorSite/headerBarContent.tsx
index 0f59ead5..43f6153b 100644
--- a/src/components/sites/exerciseEditorSite/headerBarContent.tsx
+++ b/src/components/sites/exerciseEditorSite/headerBarContent.tsx
@@ -41,6 +41,7 @@ import {getI18n, getRawI18n} from "../../../../i18n/i18nRoot";
 import {ErrorHelper} from '../../../helpers/errorHelper'
 import {HelpPopup} from '../../helpers/helpPopup'
 
+declare var require: any
 const fileSaver = require('file-saver');
 
 //const css = require('./styles.styl');
diff --git a/src/components/sites/guidesSite/exerciseSyntaxSite.tsx b/src/components/sites/guidesSite/exerciseSyntaxSite.tsx
index 751ec4c6..33ef64ca 100644
--- a/src/components/sites/guidesSite/exerciseSyntaxSite.tsx
+++ b/src/components/sites/guidesSite/exerciseSyntaxSite.tsx
@@ -12,6 +12,7 @@ import {setIsSiteHeaderBarDisplayedAndEnabledAction} from "../../../state/action
 import {connect} from "react-redux";
 import markdownIt from '../../../helpers/markdownHelper'
 
+declare var require: any
 //const css = require('./styles.styl');
 const exerciseSyntaxGuideMd = require('../../../questionSystem/exerciseQuestionSyntaxGuide.md')
 
@@ -63,4 +64,4 @@ class ExerciseSyntaxSite extends React.Component<Props, any> {
   }
 }
 
-export default connect(mapStateToProps, mapDispatchToProps)(ExerciseSyntaxSite)
\ No newline at end of file
+export default connect(mapStateToProps, mapDispatchToProps)(ExerciseSyntaxSite)
diff --git a/src/components/sites/guidesSite/testSyntaxSite.tsx b/src/components/sites/guidesSite/testSyntaxSite.tsx
index f7a9b128..2231cfa0 100644
--- a/src/components/sites/guidesSite/testSyntaxSite.tsx
+++ b/src/components/sites/guidesSite/testSyntaxSite.tsx
@@ -18,6 +18,7 @@ export interface MyProps {
   //readonly test: string
 }
 
+declare var require: any
 const testSyntaxGuideMd = require('../../../questionSystem/testSyntaxGuide.md')
 
 const content = {
@@ -62,4 +63,4 @@ class TestSyntaxSite extends React.Component<Props, any> {
   }
 }
 
-export default connect(mapStateToProps, mapDispatchToProps)(TestSyntaxSite)
\ No newline at end of file
+export default connect(mapStateToProps, mapDispatchToProps)(TestSyntaxSite)
diff --git a/src/components/sites/manageOwnOrGroupExerciseComponents/submissionsSite/exportCsvDialog/exportCsvDialog.tsx b/src/components/sites/manageOwnOrGroupExerciseComponents/submissionsSite/exportCsvDialog/exportCsvDialog.tsx
index e7b41506..803add49 100644
--- a/src/components/sites/manageOwnOrGroupExerciseComponents/submissionsSite/exportCsvDialog/exportCsvDialog.tsx
+++ b/src/components/sites/manageOwnOrGroupExerciseComponents/submissionsSite/exportCsvDialog/exportCsvDialog.tsx
@@ -27,6 +27,7 @@ import {errorDialog} from '../../../../../helpers/dialogHelper'
 import {ServerResponse} from '../../../../../types/response'
 import {ResponseCodes} from '../../../../../helpers/responseCodes'
 
+declare var require: any
 const fileSaver = require('file-saver');
 
 export interface MyProps {
diff --git a/src/components/sites/manageTagsSite/manageTagsSite.tsx b/src/components/sites/manageTagsSite/manageTagsSite.tsx
index 19367582..c81cac80 100644
--- a/src/components/sites/manageTagsSite/manageTagsSite.tsx
+++ b/src/components/sites/manageTagsSite/manageTagsSite.tsx
@@ -23,6 +23,7 @@ import {getI18n} from "../../../../i18n/i18nRoot";
 import Logger from '../../../helpers/logger'
 import {ErrorHelper} from '../../../helpers/errorHelper'
 
+declare var require: any
 const css = require('./styles.styl');
 
 export interface MyProps {
diff --git a/src/constants.ts b/src/constants.ts
index 5f629e7a..6ff6ffe2 100644
--- a/src/constants.ts
+++ b/src/constants.ts
@@ -13,7 +13,7 @@ import Logger from './helpers/logger'
  * y - breaking changes / new features
  * z - fixes, small changes
  */
-export const versionString = '2.19.0'
+export const versionString = '2.19.1'
 
 
 export const supportMail = 'yapex@informatik.uni-halle.de'
@@ -98,6 +98,8 @@ export const legalNoticePageLinkPath = '/legalNotice/legalNotice.html' //see web
 export const privacyPolicyPageLinkPath = '/privacypolicy/privacy.html' //see webpack.config.dist.js -> CopyWebpackPlugin
 export const aboutPageLinkPath = '/about/about.html'
 
+export const userGuideLinkPath = '/guides/de/'
+
 
 /**
  * returns the download personal data link for the given user (id)
diff --git a/src/helpers/cryptoHelper.ts b/src/helpers/cryptoHelper.ts
index 199f6568..c3547159 100644
--- a/src/helpers/cryptoHelper.ts
+++ b/src/helpers/cryptoHelper.ts
@@ -2,6 +2,7 @@
  * Created by janis dähne.
  */
 
+declare var require: any
 const crypto = require('crypto-js')
 
 
diff --git a/src/helpers/markdownHelper.ts b/src/helpers/markdownHelper.ts
index 395ac272..acc38b6a 100644
--- a/src/helpers/markdownHelper.ts
+++ b/src/helpers/markdownHelper.ts
@@ -4,6 +4,7 @@ import Logger from './logger'
 import {copyToClipboard} from './clipboard'
 import { markdownPLangBlockDataLangAttribute, markdownPLangBlocksClass } from '../constants'
 
+declare var require: any
 const hljs = require('highlight.js/lib/highlight')
 
 /**
@@ -267,7 +268,7 @@ const mdRenderer = markdownIt({
 
       if (tokens[idx].nesting === 1) {
         // opening tag
-        
+
         //div class="..." with data attribute to identify lang
         return `<div class="${markdownPLangBlocksClass}" ${markdownPLangBlockDataLangAttribute}="${mdRenderer.utils.escapeHtml(m[0])}">\n`;
       } else {
diff --git a/src/index.tsx b/src/index.tsx
index 8e13875b..a27b7f1a 100644
--- a/src/index.tsx
+++ b/src/index.tsx
@@ -14,6 +14,7 @@ import history from './routerHistory'
 import {setup} from './setup'
 import {NotificationContainer} from "react-notifications";
 
+declare var require: any
 //according to https://stackoverflow.com/questions/14990369/how-does-stylus-variable-scope-work-across-files
 //we only need one file importing all other then all imported files iwll have the same scope
 // const common = require('./styles/common.styl')
diff --git a/src/setup.ts b/src/setup.ts
index 463a867f..94eacbf5 100644
--- a/src/setup.ts
+++ b/src/setup.ts
@@ -27,6 +27,7 @@ import {ErrorHelper} from './helpers/errorHelper'
 import {errorDialog} from './helpers/dialogHelper'
 import {getServerMessageUrl} from './communicationLayer/systemSettingsLayer'
 
+declare var require: any
 
 require('react-datetime/css/react-datetime.css')
 //require('../customChangedLib/react-notifications/notifications.styl') //imported via allStylues.styl
diff --git a/static_pages/about/about.html b/static_pages/about/about.html
index 4074cd4e..816aa5ac 100644
--- a/static_pages/about/about.html
+++ b/static_pages/about/about.html
@@ -896,7 +896,7 @@ Natürlich gibt es viele kleinere Verbesserungsvorschläge und Ideen YAPEX noch
 
 
   <div>
-    Copyright © 2016-2022
+    Copyright © 2016-2023
 <!--    ???-->
   </div>
 
-- 
GitLab