From 3d8532c5a540f06b1530bf27068affc1cdfe3330 Mon Sep 17 00:00:00 2001 From: rfulton-lf Date: Mon, 9 Oct 2023 09:44:32 -0700 Subject: [PATCH 1/6] updated the long description with microsoft feedback --- config/package-solution.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/package-solution.json b/config/package-solution.json index c351676..44ac891 100644 --- a/config/package-solution.json +++ b/config/package-solution.json @@ -31,7 +31,7 @@ "default": "Laserfiche Sharepoint Online Integration provides common Repository management capabilities for Laserfiche Cloud users right within SharePoint." }, "longDescription": { - "default": "Laserfiche Sharepoint Online Integration allows you to browse your Laserfiche repository, view documents, and save documents from SharePoint to Laserfiche with configurable metadata mappings." + "default": "Laserfiche Sharepoint Online Integration provides webparts you can add to your SharePoint sites to browse your Laserfiche repository, view documents, and save documents from SharePoint to Laserfiche with configurable metadata mappings. If you are encountering issues with the integration, visit support.laserfiche.com to get help." }, "categories": ["Content management", "Collaboration", "Productivity"], "screenshotPaths": [ From 38df5c8ada08681352b5b4b75a942fa30d7f26f7 Mon Sep 17 00:00:00 2001 From: rfulton-lf Date: Tue, 10 Oct 2023 15:59:22 -0700 Subject: [PATCH 2/6] added text to repository browser --- package-lock.json | 662 +----------------- .../LaserficheRepositoryAccessWebPart.tsx | 15 + .../components/HomePage/HomePage.tsx | 107 ++- 3 files changed, 70 insertions(+), 714 deletions(-) diff --git a/package-lock.json b/package-lock.json index bec1d36..959131e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "laserfiche-sharepoint-integration", - "version": "1.0.0", + "version": "VERSION_TO_UPDATE", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "laserfiche-sharepoint-integration", - "version": "1.0.0", + "version": "VERSION_TO_UPDATE", "license": "MIT", "dependencies": { "@laserfiche/lf-repository-api-client": "^1.0.12", @@ -46,7 +46,6 @@ "eslint": "8.7.0", "eslint-plugin-react-hooks": "4.3.0", "gulp": "~4.0.2", - "tailwindcss": "^3.3.3", "typescript": "4.5.5", "url-loader": "^4.1.1" }, @@ -63,18 +62,6 @@ "node": ">=0.10.0" } }, - "node_modules/@alloc/quick-lru": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", - "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@ampproject/remapping": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", @@ -12450,12 +12437,6 @@ "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", "dev": true }, - "node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "dev": true - }, "node_modules/argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -13962,15 +13943,6 @@ "node": ">=6" } }, - "node_modules/camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, "node_modules/camelcase-keys": { "version": "6.2.2", "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", @@ -16114,12 +16086,6 @@ "wrappy": "1" } }, - "node_modules/didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", - "dev": true - }, "node_modules/diff-sequences": { "version": "25.2.6", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.2.6.tgz", @@ -16158,12 +16124,6 @@ "node": ">=8" } }, - "node_modules/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true - }, "node_modules/dns-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", @@ -22408,15 +22368,6 @@ "node": ">= 8.3" } }, - "node_modules/jiti": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.19.1.tgz", - "integrity": "sha512-oVhqoRDaBXf7sjkll95LHVS6Myyyb1zaunVwk4Z0+WPSW4gjS0pl01zYKHScTuyEhQsFxV5L4DR5r+YqSyqyyg==", - "dev": true, - "bin": { - "jiti": "bin/jiti.js" - } - }, "node_modules/jju": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", @@ -24919,15 +24870,6 @@ "node": ">=0.10.0" } }, - "node_modules/object-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, "node_modules/object-inspect": { "version": "1.12.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", @@ -27187,15 +27129,6 @@ "node": ">=0.8" } }, - "node_modules/read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "dev": true, - "dependencies": { - "pify": "^2.3.0" - } - }, "node_modules/read-package-json": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.2.tgz", @@ -29990,71 +29923,6 @@ "postcss": "^8.2.15" } }, - "node_modules/sucrase": { - "version": "3.34.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz", - "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "glob": "7.1.6", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" - }, - "bin": { - "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/sucrase/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/sucrase/node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/sucrase/node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/sudo": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sudo/-/sudo-1.0.3.tgz", @@ -30164,255 +30032,6 @@ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "dev": true }, - "node_modules/tailwindcss": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.3.tgz", - "integrity": "sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==", - "dev": true, - "dependencies": { - "@alloc/quick-lru": "^5.2.0", - "arg": "^5.0.2", - "chokidar": "^3.5.3", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.2.12", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "jiti": "^1.18.2", - "lilconfig": "^2.1.0", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "object-hash": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.23", - "postcss-import": "^15.1.0", - "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.1", - "postcss-nested": "^6.0.1", - "postcss-selector-parser": "^6.0.11", - "resolve": "^1.22.2", - "sucrase": "^3.32.0" - }, - "bin": { - "tailwind": "lib/cli.js", - "tailwindcss": "lib/cli.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/tailwindcss/node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/tailwindcss/node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/tailwindcss/node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/tailwindcss/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/tailwindcss/node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/tailwindcss/node_modules/postcss": { - "version": "8.4.28", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.28.tgz", - "integrity": "sha512-Z7V5j0cq8oEKyejIKfpD8b4eBy9cwW2JWPk0+fB1HOAMsfHbnAXLLS+PfVWlzMSLQaWttKDt607I0XHmpE67Vw==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/tailwindcss/node_modules/postcss-import": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", - "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/tailwindcss/node_modules/postcss-js": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", - "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", - "dev": true, - "dependencies": { - "camelcase-css": "^2.0.1" - }, - "engines": { - "node": "^12 || ^14 || >= 16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.4.21" - } - }, - "node_modules/tailwindcss/node_modules/postcss-load-config": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz", - "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", - "dev": true, - "dependencies": { - "lilconfig": "^2.0.5", - "yaml": "^2.1.1" - }, - "engines": { - "node": ">= 14" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": ">=8.0.9", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/tailwindcss/node_modules/postcss-nested": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", - "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.11" - }, - "engines": { - "node": ">=12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.2.14" - } - }, - "node_modules/tailwindcss/node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/tailwindcss/node_modules/resolve": { - "version": "1.22.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", - "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", - "dev": true, - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", @@ -30976,12 +30595,6 @@ "integrity": "sha512-0z3j8R7MCjy10kc/g+qg7Ln3alJTodw9aDuVWZa3uiWqfuBMKeAeP2ocWcxoyM3D73yz3Jt/Pu4qPr4wHSdB/Q==", "dev": true }, - "node_modules/ts-interface-checker": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", - "dev": true - }, "node_modules/tslib": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", @@ -33293,15 +32906,6 @@ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, - "node_modules/yaml": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz", - "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==", - "dev": true, - "engines": { - "node": ">= 14" - } - }, "node_modules/yargs": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-4.6.0.tgz", @@ -33586,12 +33190,6 @@ "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", "dev": true }, - "@alloc/quick-lru": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", - "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", - "dev": true - }, "@ampproject/remapping": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", @@ -43406,12 +43004,6 @@ "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", "dev": true }, - "arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "dev": true - }, "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -44600,12 +44192,6 @@ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true }, - "camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "dev": true - }, "camelcase-keys": { "version": "6.2.2", "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", @@ -46293,12 +45879,6 @@ "wrappy": "1" } }, - "didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", - "dev": true - }, "diff-sequences": { "version": "25.2.6", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.2.6.tgz", @@ -46333,12 +45913,6 @@ "path-type": "^4.0.0" } }, - "dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true - }, "dns-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", @@ -51283,12 +50857,6 @@ "supports-color": "^7.0.0" } }, - "jiti": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.19.1.tgz", - "integrity": "sha512-oVhqoRDaBXf7sjkll95LHVS6Myyyb1zaunVwk4Z0+WPSW4gjS0pl01zYKHScTuyEhQsFxV5L4DR5r+YqSyqyyg==", - "dev": true - }, "jju": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", @@ -53348,12 +52916,6 @@ } } }, - "object-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "dev": true - }, "object-inspect": { "version": "1.12.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", @@ -55041,15 +54603,6 @@ "mute-stream": "~0.0.4" } }, - "read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "dev": true, - "requires": { - "pify": "^2.3.0" - } - }, "read-package-json": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.2.tgz", @@ -57287,54 +56840,6 @@ "postcss-selector-parser": "^6.0.4" } }, - "sucrase": { - "version": "3.34.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz", - "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==", - "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "glob": "7.1.6", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" - }, - "dependencies": { - "@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - } - } - }, "sudo": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sudo/-/sudo-1.0.3.tgz", @@ -57422,157 +56927,6 @@ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "dev": true }, - "tailwindcss": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.3.tgz", - "integrity": "sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==", - "dev": true, - "requires": { - "@alloc/quick-lru": "^5.2.0", - "arg": "^5.0.2", - "chokidar": "^3.5.3", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.2.12", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "jiti": "^1.18.2", - "lilconfig": "^2.1.0", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "object-hash": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.23", - "postcss-import": "^15.1.0", - "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.1", - "postcss-nested": "^6.0.1", - "postcss-selector-parser": "^6.0.11", - "resolve": "^1.22.2", - "sucrase": "^3.32.0" - }, - "dependencies": { - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - } - } - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "postcss": { - "version": "8.4.28", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.28.tgz", - "integrity": "sha512-Z7V5j0cq8oEKyejIKfpD8b4eBy9cwW2JWPk0+fB1HOAMsfHbnAXLLS+PfVWlzMSLQaWttKDt607I0XHmpE67Vw==", - "dev": true, - "requires": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - } - }, - "postcss-import": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", - "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - } - }, - "postcss-js": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", - "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", - "dev": true, - "requires": { - "camelcase-css": "^2.0.1" - } - }, - "postcss-load-config": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz", - "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", - "dev": true, - "requires": { - "lilconfig": "^2.0.5", - "yaml": "^2.1.1" - } - }, - "postcss-nested": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", - "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", - "dev": true, - "requires": { - "postcss-selector-parser": "^6.0.11" - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "resolve": { - "version": "1.22.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", - "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", - "dev": true, - "requires": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - } - } - }, "tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", @@ -58028,12 +57382,6 @@ "integrity": "sha512-0z3j8R7MCjy10kc/g+qg7Ln3alJTodw9aDuVWZa3uiWqfuBMKeAeP2ocWcxoyM3D73yz3Jt/Pu4qPr4wHSdB/Q==", "dev": true }, - "ts-interface-checker": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", - "dev": true - }, "tslib": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", @@ -59854,12 +59202,6 @@ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, - "yaml": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz", - "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==", - "dev": true - }, "yargs": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-4.6.0.tgz", diff --git a/src/webparts/LaserficheRepositoryAccessWebPart/components/LaserficheRepositoryAccessWebPart.tsx b/src/webparts/LaserficheRepositoryAccessWebPart/components/LaserficheRepositoryAccessWebPart.tsx index d519509..82618c4 100644 --- a/src/webparts/LaserficheRepositoryAccessWebPart/components/LaserficheRepositoryAccessWebPart.tsx +++ b/src/webparts/LaserficheRepositoryAccessWebPart/components/LaserficheRepositoryAccessWebPart.tsx @@ -33,6 +33,12 @@ declare global { } } +const YOU_MUST_BE_CLOUD_USER_TO_USE_WEB_PART = + 'You must be a currently licensed Laserfiche Cloud user to use this web part.'; +const FOR_MORE_INFO_VISIT = 'For more information visit'; +const ONCE_SIGNED_IN_YOULL_SEE_REPOSITORY = + "Once signed in you'll be able to view your Laserfiche repository."; + export default function LaserficheRepositoryAccessWebPart( props: ILaserficheRepositoryAccessWebPartProps ): JSX.Element { @@ -127,6 +133,15 @@ export default function LaserficheRepositoryAccessWebPart( repoClient={repoClient} loggedIn={loggedIn} /> + {!loggedIn && ( + + {`${YOU_MUST_BE_CLOUD_USER_TO_USE_WEB_PART} ${FOR_MORE_INFO_VISIT} `} + + laserfiche.com + + {`. ${ONCE_SIGNED_IN_YOULL_SEE_REPOSITORY}`} + + )} ); diff --git a/src/webparts/laserficheAdminConfiguration/components/HomePage/HomePage.tsx b/src/webparts/laserficheAdminConfiguration/components/HomePage/HomePage.tsx index ae9093d..e9b0a41 100644 --- a/src/webparts/laserficheAdminConfiguration/components/HomePage/HomePage.tsx +++ b/src/webparts/laserficheAdminConfiguration/components/HomePage/HomePage.tsx @@ -1,54 +1,53 @@ -import * as React from 'react'; -require('./../../../../Assets/CSS/commonStyles.css'); -require('../../../../Assets/CSS/bootstrap.min.css'); - -export default function HomePage(): JSX.Element { - return ( -
-
-

- Use the Laserfiche Administration page to edit your SharePoint and - Laserfiche configuration. Sign in and select the task you want to - perform from the menu at the top of this section. -

-

- For more information, see the{' '} - - help documentation. - {' '} - Note: the help link is not live yet.{' '} -

-
-

- Profiles -

-

- - Profiles govern how documents in SharePoint will be saved to - Laserfiche. You can create multiple profiles for different - SharePoint content types. For example, if you want applications - stored differently than invoices, create separate - profiles for each content type. - -

-

- Profile Mapping -

-

- - In this tab, you can map a specific SharePoint content type with a - corresponding Laserfiche profile. This profile will then be used - when saving all documents of the specified SharePoint content - type. - -

-
-
-
- ); -} +import * as React from 'react'; +require('./../../../../Assets/CSS/commonStyles.css'); +require('../../../../Assets/CSS/bootstrap.min.css'); + +export default function HomePage(): JSX.Element { + return ( +
+
+

+ Use the Laserfiche Administration page to edit your SharePoint and + Laserfiche configuration. Sign in and select the task you want to + perform from the menu at the top of this section. +

+

+ For more information, see the{' '} + + help documentation. + +

+
+

+ Profiles +

+

+ + Profiles govern how documents in SharePoint will be saved to + Laserfiche. You can create multiple profiles for different + SharePoint content types. For example, if you want applications + stored differently than invoices, create separate + profiles for each content type. + +

+

+ Profile Mapping +

+

+ + In this tab, you can map a specific SharePoint content type with a + corresponding Laserfiche profile. This profile will then be used + when saving all documents of the specified SharePoint content + type. + +

+
+
+
+ ); +} From ff67ac7ee365a7599d054a6576efd9fd80c5ff94 Mon Sep 17 00:00:00 2001 From: rfulton-lf Date: Wed, 11 Oct 2023 05:52:29 -0700 Subject: [PATCH 3/6] added LF cloud pricing to initial page of Login component --- .../SendToLaserficheLoginComponent.tsx | 455 +++++++++--------- 1 file changed, 233 insertions(+), 222 deletions(-) diff --git a/src/webparts/sendToLaserficheLoginComponent/components/SendToLaserficheLoginComponent.tsx b/src/webparts/sendToLaserficheLoginComponent/components/SendToLaserficheLoginComponent.tsx index f53f52e..96711ef 100644 --- a/src/webparts/sendToLaserficheLoginComponent/components/SendToLaserficheLoginComponent.tsx +++ b/src/webparts/sendToLaserficheLoginComponent/components/SendToLaserficheLoginComponent.tsx @@ -1,222 +1,233 @@ -import * as React from 'react'; -import { SPComponentLoader } from '@microsoft/sp-loader'; -import { Navigation } from 'spfx-navigation'; -import { - LfLoginComponent, - LoginState, -} from '@laserfiche/types-lf-ui-components'; -import { - clientId, - LF_INDIGO_PINK_CSS_URL, - LF_MS_OFFICE_LITE_CSS_URL, - LF_UI_COMPONENTS_URL, - SP_LOCAL_STORAGE_KEY, - ZONE_JS_URL, -} from '../../constants'; -import { NgElement, WithProperties } from '@angular/elements'; -import { ISendToLaserficheLoginComponentProps } from './ISendToLaserficheLoginComponentProps'; -import { ISPDocumentData } from '../../../Utils/Types'; -import SaveToLaserficheCustomDialog from '../../../extensions/savetoLaserfiche/SaveToLaserficheDialog'; -import { getEntryWebAccessUrl, getRegion } from '../../../Utils/Funcs'; -import styles from './SendToLaserficheLoginComponent.module.scss'; - -declare global { - // eslint-disable-next-line - namespace JSX { - interface IntrinsicElements { - // eslint-disable-next-line - ['lf-login']: any; - } - } -} - -const CANCEL = 'Cancel'; -const NOTE_THIS_PAGE_ONLY_NEEDED_WHEN_SAVING_TO_LASERFICHE = - '*Note: This page should only be needed if you are attempting to save a document to Laserfiche.'; - -export default function SendToLaserficheLoginComponent( - props: ISendToLaserficheLoginComponentProps -): JSX.Element { - const loginComponent: React.RefObject< - NgElement & WithProperties - > = React.useRef(); - - const [loggedIn, setLoggedIn] = React.useState(false); - - const region = getRegion(); - - const spFileMetadata = JSON.parse( - window.localStorage.getItem(SP_LOCAL_STORAGE_KEY) - ) as ISPDocumentData; - - let webClientUrl: string | undefined; - if (loggedIn) { - webClientUrl = getEntryWebAccessUrl( - '1', - loginComponent.current?.account_endpoints.webClientUrl, - true - ); - } - const loginText: JSX.Element | undefined = getLoginText(); - - const loginCompleted: () => Promise = async () => { - setLoggedIn(true); - if (spFileMetadata) { - const dialog = new SaveToLaserficheCustomDialog( - spFileMetadata, - async (success) => { - if (success) { - Navigation.navigate(success.pathBack, true); - } - } - ); - await dialog.show(); - if (!dialog.successful) { - console.warn('Could not sign in successfully'); - } - } - }; - - const logoutCompleted: () => void = () => { - setLoggedIn(false); - }; - - React.useEffect(() => { - const setUpLoginComponentAsync: () => Promise = async () => { - try { - SPComponentLoader.loadCss(LF_INDIGO_PINK_CSS_URL); - SPComponentLoader.loadCss(LF_MS_OFFICE_LITE_CSS_URL); - await SPComponentLoader.loadScript(ZONE_JS_URL); - await SPComponentLoader.loadScript(LF_UI_COMPONENTS_URL); - loginComponent.current.addEventListener( - 'loginCompleted', - loginCompleted - ); - loginComponent.current.addEventListener( - 'logoutCompleted', - logoutCompleted - ); - - const isLoggedIn: boolean = - loginComponent.current.state === LoginState.LoggedIn; - - setLoggedIn(isLoggedIn); - - if (isLoggedIn && spFileMetadata) { - const dialog = new SaveToLaserficheCustomDialog( - spFileMetadata, - async (success) => { - if (success) { - Navigation.navigate(success.pathBack, true); - } - } - ); - - await dialog.show(); - if (!dialog.successful) { - console.warn('Could not sign in successfully'); - } - } - } catch (err) { - console.error(`Unable to initialize sign-in page: ${err}`); - } - }; - - void setUpLoginComponentAsync(); - }, []); - - function getLoginText(): JSX.Element { - let loginText: JSX.Element | undefined; - if (!spFileMetadata) { - loginText = ( - <> -

{NOTE_THIS_PAGE_ONLY_NEEDED_WHEN_SAVING_TO_LASERFICHE}

- {loggedIn ? ( -

- {'Welcome to Laserfiche.'} - {webClientUrl && ( - <> - {' Go to '} - - your Laserfiche repository - - - )} -

- ) : ( -

- You are not signed in. You can sign in using the following button. -

- )} - - ); - } else if (spFileMetadata?.fileUrl && !loggedIn) { - loginText = ( - <> -
- {`You are not signed in. Please sign in to continue saving ${spFileMetadata?.fileName}.`} -
-
- - ); - } else if (spFileMetadata?.fileUrl && loggedIn) { - loginText = ( - <> -
- {`You are now signed in. Attempting to save ${spFileMetadata?.fileName}.`} -
-
- - ); - } else { -

{NOTE_THIS_PAGE_ONLY_NEEDED_WHEN_SAVING_TO_LASERFICHE}

; - } - return loginText; - } - - function redirect(): void { - const spFileUrl = spFileMetadata.fileUrl; - const fileNameWithExtension = spFileMetadata.fileName; - const spFileUrlWithoutFileName = spFileUrl.replace( - fileNameWithExtension, - '' - ); - const path = window.location.origin + spFileUrlWithoutFileName; - window.localStorage.removeItem(SP_LOCAL_STORAGE_KEY); - Navigation.navigate(path, true); - } - - return ( - -
- - Laserfiche -
- -
{loginText}
-
- -
- {spFileMetadata?.fileUrl && ( - - )} -
-
- ); -} +import * as React from 'react'; +import { SPComponentLoader } from '@microsoft/sp-loader'; +import { Navigation } from 'spfx-navigation'; +import { + LfLoginComponent, + LoginState, +} from '@laserfiche/types-lf-ui-components'; +import { + clientId, + LF_INDIGO_PINK_CSS_URL, + LF_MS_OFFICE_LITE_CSS_URL, + LF_UI_COMPONENTS_URL, + SP_LOCAL_STORAGE_KEY, + ZONE_JS_URL, +} from '../../constants'; +import { NgElement, WithProperties } from '@angular/elements'; +import { ISendToLaserficheLoginComponentProps } from './ISendToLaserficheLoginComponentProps'; +import { ISPDocumentData } from '../../../Utils/Types'; +import SaveToLaserficheCustomDialog from '../../../extensions/savetoLaserfiche/SaveToLaserficheDialog'; +import { getEntryWebAccessUrl, getRegion } from '../../../Utils/Funcs'; +import styles from './SendToLaserficheLoginComponent.module.scss'; + +declare global { + // eslint-disable-next-line + namespace JSX { + interface IntrinsicElements { + // eslint-disable-next-line + ['lf-login']: any; + } + } +} + +const CANCEL = 'Cancel'; +const NOTE_THIS_PAGE_ONLY_NEEDED_WHEN_SAVING_TO_LASERFICHE = + '*Note: This page should only be needed if you are attempting to save a document to Laserfiche.'; +const YOU_MUST_BE_CLOUD_USER_TO_USE_WEB_PART = + 'You must be a currently licensed Laserfiche Cloud user to use this web part.'; +const FOR_MORE_INFO_VISIT = 'For more information visit'; + +export default function SendToLaserficheLoginComponent( + props: ISendToLaserficheLoginComponentProps +): JSX.Element { + const loginComponent: React.RefObject< + NgElement & WithProperties + > = React.useRef(); + + const [loggedIn, setLoggedIn] = React.useState(false); + + const region = getRegion(); + + const spFileMetadata = JSON.parse( + window.localStorage.getItem(SP_LOCAL_STORAGE_KEY) + ) as ISPDocumentData; + + let webClientUrl: string | undefined; + if (loggedIn) { + webClientUrl = getEntryWebAccessUrl( + '1', + loginComponent.current?.account_endpoints.webClientUrl, + true + ); + } + const loginText: JSX.Element | undefined = getLoginText(); + + const loginCompleted: () => Promise = async () => { + setLoggedIn(true); + if (spFileMetadata) { + const dialog = new SaveToLaserficheCustomDialog( + spFileMetadata, + async (success) => { + if (success) { + Navigation.navigate(success.pathBack, true); + } + } + ); + await dialog.show(); + if (!dialog.successful) { + console.warn('Could not sign in successfully'); + } + } + }; + + const logoutCompleted: () => void = () => { + setLoggedIn(false); + }; + + React.useEffect(() => { + const setUpLoginComponentAsync: () => Promise = async () => { + try { + SPComponentLoader.loadCss(LF_INDIGO_PINK_CSS_URL); + SPComponentLoader.loadCss(LF_MS_OFFICE_LITE_CSS_URL); + await SPComponentLoader.loadScript(ZONE_JS_URL); + await SPComponentLoader.loadScript(LF_UI_COMPONENTS_URL); + loginComponent.current.addEventListener( + 'loginCompleted', + loginCompleted + ); + loginComponent.current.addEventListener( + 'logoutCompleted', + logoutCompleted + ); + + const isLoggedIn: boolean = + loginComponent.current.state === LoginState.LoggedIn; + + setLoggedIn(isLoggedIn); + + if (isLoggedIn && spFileMetadata) { + const dialog = new SaveToLaserficheCustomDialog( + spFileMetadata, + async (success) => { + if (success) { + Navigation.navigate(success.pathBack, true); + } + } + ); + + await dialog.show(); + if (!dialog.successful) { + console.warn('Could not sign in successfully'); + } + } + } catch (err) { + console.error(`Unable to initialize sign-in page: ${err}`); + } + }; + + void setUpLoginComponentAsync(); + }, []); + + function getLoginText(): JSX.Element { + let loginText: JSX.Element | undefined; + if (!spFileMetadata) { + loginText = ( + <> +

{NOTE_THIS_PAGE_ONLY_NEEDED_WHEN_SAVING_TO_LASERFICHE}

+ {loggedIn ? ( +

+ {'Welcome to Laserfiche.'} + {webClientUrl && ( + <> + {' Go to '} + + your Laserfiche repository + + + )} +

+ ) : ( + + {`${YOU_MUST_BE_CLOUD_USER_TO_USE_WEB_PART} ${FOR_MORE_INFO_VISIT} `} + + laserfiche.com + + {`.`} +

+ You are not signed in. You can sign in using the following + button. +

+
+ )} + + ); + } else if (spFileMetadata?.fileUrl && !loggedIn) { + loginText = ( + <> +
+ {`You are not signed in. Please sign in to continue saving ${spFileMetadata?.fileName}.`} +
+
+ + ); + } else if (spFileMetadata?.fileUrl && loggedIn) { + loginText = ( + <> +
+ {`You are now signed in. Attempting to save ${spFileMetadata?.fileName}.`} +
+
+ + ); + } else { +

{NOTE_THIS_PAGE_ONLY_NEEDED_WHEN_SAVING_TO_LASERFICHE}

; + } + return loginText; + } + + function redirect(): void { + const spFileUrl = spFileMetadata.fileUrl; + const fileNameWithExtension = spFileMetadata.fileName; + const spFileUrlWithoutFileName = spFileUrl.replace( + fileNameWithExtension, + '' + ); + const path = window.location.origin + spFileUrlWithoutFileName; + window.localStorage.removeItem(SP_LOCAL_STORAGE_KEY); + Navigation.navigate(path, true); + } + + return ( + +
+ + Laserfiche +
+ +
{loginText}
+
+ +
+ {spFileMetadata?.fileUrl && ( + + )} +
+
+ ); +} From 4d58d4787f2c4326bde717a20102beb4a01e5d8d Mon Sep 17 00:00:00 2001 From: rfulton-lf Date: Wed, 11 Oct 2023 06:00:07 -0700 Subject: [PATCH 4/6] added the pricing link to admin config web part --- .../components/HomePage/HomePage.tsx | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/webparts/laserficheAdminConfiguration/components/HomePage/HomePage.tsx b/src/webparts/laserficheAdminConfiguration/components/HomePage/HomePage.tsx index e9b0a41..dc9d0f7 100644 --- a/src/webparts/laserficheAdminConfiguration/components/HomePage/HomePage.tsx +++ b/src/webparts/laserficheAdminConfiguration/components/HomePage/HomePage.tsx @@ -2,10 +2,21 @@ import * as React from 'react'; require('./../../../../Assets/CSS/commonStyles.css'); require('../../../../Assets/CSS/bootstrap.min.css'); +const YOU_MUST_BE_CLOUD_USER_TO_USE_WEB_PART = + 'You must be a currently licensed Laserfiche Cloud user to use this web part.'; +const FOR_MORE_INFO_VISIT = 'For more information visit'; + export default function HomePage(): JSX.Element { return (
+

+ {`${YOU_MUST_BE_CLOUD_USER_TO_USE_WEB_PART} ${FOR_MORE_INFO_VISIT} `} + + laserfiche.com + + {`.`} +

Use the Laserfiche Administration page to edit your SharePoint and Laserfiche configuration. Sign in and select the task you want to @@ -17,7 +28,7 @@ export default function HomePage(): JSX.Element { href='https://laserfiche.github.io/laserfiche-sharepoint-integration/' target='_blank' rel='noreferrer' - style={{color: '#0079d6'}} + style={{ color: '#0079d6' }} > help documentation. @@ -31,8 +42,8 @@ export default function HomePage(): JSX.Element { Profiles govern how documents in SharePoint will be saved to Laserfiche. You can create multiple profiles for different SharePoint content types. For example, if you want applications - stored differently than invoices, create separate - profiles for each content type. + stored differently than invoices, create separate profiles for + each content type.

From c4e6da0a4f3913b1e99e238f3cacb63c430b3788 Mon Sep 17 00:00:00 2001 From: "alexandria.gomez" Date: Wed, 11 Oct 2023 12:04:45 -0400 Subject: [PATCH 5/6] couple of string changes --- .../components/HomePage/HomePage.tsx | 27 ++++++++++--------- .../SendToLaserficheLoginComponent.tsx | 24 +++++++++-------- 2 files changed, 28 insertions(+), 23 deletions(-) diff --git a/src/webparts/laserficheAdminConfiguration/components/HomePage/HomePage.tsx b/src/webparts/laserficheAdminConfiguration/components/HomePage/HomePage.tsx index dc9d0f7..5ac945e 100644 --- a/src/webparts/laserficheAdminConfiguration/components/HomePage/HomePage.tsx +++ b/src/webparts/laserficheAdminConfiguration/components/HomePage/HomePage.tsx @@ -5,6 +5,12 @@ require('../../../../Assets/CSS/bootstrap.min.css'); const YOU_MUST_BE_CLOUD_USER_TO_USE_WEB_PART = 'You must be a currently licensed Laserfiche Cloud user to use this web part.'; const FOR_MORE_INFO_VISIT = 'For more information visit'; +const USE_LASERFICHE_ADMIN_PAGE_TO_EDIT_SP_LF_CONFIG_SIGN_IN_AND_SELECT_TASK_TO_COMPLETE = + 'Use the Laserfiche Administration page to edit your SharePoint and Laserfiche configuration. Sign in and select the task you want to perform from the menu at the top of this section.'; +const PROFILES_GOVERN_HOW_SP_SAVED_TO_LF_CAN_CREATE_MULTIPLE_PROFILES_FOR_DIFFERENT_SP_CONTENT_TYPES = + 'Profiles govern how documents in SharePoint will be saved to Laserfiche. You can create multiple profiles for different SharePoint content types. For example, if you want applications stored differently than invoices, create separate profiles for each content type.'; +const IN_THIS_TAB_CAN_MAP_SPECIFIC_SP_CONTENT_TYPE_TO_LF_PROFILE_PROFILE_THEN_USED_TO_SAVE_SP_DOCS_WITH_THAT_CONTENT_TYPE = + 'In this tab, you can map a specific SharePoint content type to a corresponding Laserfiche profile. This profile will then be used when saving all documents of the specified SharePoint content type.'; export default function HomePage(): JSX.Element { return ( @@ -18,9 +24,9 @@ export default function HomePage(): JSX.Element { {`.`}

- Use the Laserfiche Administration page to edit your SharePoint and - Laserfiche configuration. Sign in and select the task you want to - perform from the menu at the top of this section. + { + USE_LASERFICHE_ADMIN_PAGE_TO_EDIT_SP_LF_CONFIG_SIGN_IN_AND_SELECT_TASK_TO_COMPLETE + }

For more information, see the{' '} @@ -39,11 +45,9 @@ export default function HomePage(): JSX.Element {

- Profiles govern how documents in SharePoint will be saved to - Laserfiche. You can create multiple profiles for different - SharePoint content types. For example, if you want applications - stored differently than invoices, create separate profiles for - each content type. + { + PROFILES_GOVERN_HOW_SP_SAVED_TO_LF_CAN_CREATE_MULTIPLE_PROFILES_FOR_DIFFERENT_SP_CONTENT_TYPES + }

@@ -51,10 +55,9 @@ export default function HomePage(): JSX.Element {

- In this tab, you can map a specific SharePoint content type with a - corresponding Laserfiche profile. This profile will then be used - when saving all documents of the specified SharePoint content - type. + { + IN_THIS_TAB_CAN_MAP_SPECIFIC_SP_CONTENT_TYPE_TO_LF_PROFILE_PROFILE_THEN_USED_TO_SAVE_SP_DOCS_WITH_THAT_CONTENT_TYPE + }

diff --git a/src/webparts/sendToLaserficheLoginComponent/components/SendToLaserficheLoginComponent.tsx b/src/webparts/sendToLaserficheLoginComponent/components/SendToLaserficheLoginComponent.tsx index 96711ef..412051b 100644 --- a/src/webparts/sendToLaserficheLoginComponent/components/SendToLaserficheLoginComponent.tsx +++ b/src/webparts/sendToLaserficheLoginComponent/components/SendToLaserficheLoginComponent.tsx @@ -31,8 +31,8 @@ declare global { } const CANCEL = 'Cancel'; -const NOTE_THIS_PAGE_ONLY_NEEDED_WHEN_SAVING_TO_LASERFICHE = - '*Note: This page should only be needed if you are attempting to save a document to Laserfiche.'; +const NOTE_THIS_WEB_PART_IS_ONLY_NEEDED_WHEN_SAVING_TO_LASERFICHE = + '*Note: This web part is only needed if you are attempting to save a document to Laserfiche.'; const YOU_MUST_BE_CLOUD_USER_TO_USE_WEB_PART = 'You must be a currently licensed Laserfiche Cloud user to use this web part.'; const FOR_MORE_INFO_VISIT = 'For more information visit'; @@ -133,7 +133,7 @@ export default function SendToLaserficheLoginComponent( if (!spFileMetadata) { loginText = ( <> -

{NOTE_THIS_PAGE_ONLY_NEEDED_WHEN_SAVING_TO_LASERFICHE}

+

{NOTE_THIS_WEB_PART_IS_ONLY_NEEDED_WHEN_SAVING_TO_LASERFICHE}

{loggedIn ? (

{'Welcome to Laserfiche.'} @@ -152,17 +152,19 @@ export default function SendToLaserficheLoginComponent( )}

) : ( - - {`${YOU_MUST_BE_CLOUD_USER_TO_USE_WEB_PART} ${FOR_MORE_INFO_VISIT} `} - - laserfiche.com - - {`.`} +
+

+ {`${YOU_MUST_BE_CLOUD_USER_TO_USE_WEB_PART} ${FOR_MORE_INFO_VISIT} `} + + laserfiche.com + + {`.`} +

You are not signed in. You can sign in using the following button.

- +
)} ); @@ -185,7 +187,7 @@ export default function SendToLaserficheLoginComponent( ); } else { -

{NOTE_THIS_PAGE_ONLY_NEEDED_WHEN_SAVING_TO_LASERFICHE}

; +

{NOTE_THIS_WEB_PART_IS_ONLY_NEEDED_WHEN_SAVING_TO_LASERFICHE}

; } return loginText; } From c4cd012c768d6497ed4839d971fa7e640809cd5e Mon Sep 17 00:00:00 2001 From: rfulton-lf <122411121+rfulton-lf@users.noreply.github.com> Date: Mon, 16 Oct 2023 15:18:34 -0700 Subject: [PATCH 6/6] Update package-solution.json --- config/package-solution.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/package-solution.json b/config/package-solution.json index 44ac891..4bb6d13 100644 --- a/config/package-solution.json +++ b/config/package-solution.json @@ -31,7 +31,7 @@ "default": "Laserfiche Sharepoint Online Integration provides common Repository management capabilities for Laserfiche Cloud users right within SharePoint." }, "longDescription": { - "default": "Laserfiche Sharepoint Online Integration provides webparts you can add to your SharePoint sites to browse your Laserfiche repository, view documents, and save documents from SharePoint to Laserfiche with configurable metadata mappings. If you are encountering issues with the integration, visit support.laserfiche.com to get help." + "default": "Laserfiche Sharepoint Online Integration provides webparts which allows licensed Laserfiche Cloud users to browse their Laserfiche repository, view documents, and save documents from SharePoint to Laserfiche with configurable metadata mappings. You must add the app to each site you wish to use the integration on. If you are encountering issues with the integration, visit support.laserfiche.com to get help." }, "categories": ["Content management", "Collaboration", "Productivity"], "screenshotPaths": [