diff --git a/cypress/e2e/admin.cy.js b/cypress/e2e/admin.cy.js index 5c0d1fcb..d5cc490b 100644 --- a/cypress/e2e/admin.cy.js +++ b/cypress/e2e/admin.cy.js @@ -22,6 +22,15 @@ context('Admin: Generate Screenshots', () => { cy.snap('modal-projects-new_project', '.p-dialog') }) + it('Gen Projects pages for non-root user', () => { + cy.request('POST', '/logout'); + cy.login('user5@email.com'); + cy.visit('/administrator') + cy.get('[data-cy="projectCard_movies"]'); + cy.get('[data-cy="projectCard_shows"]'); + cy.snap('page-projects-not-root'); + }) + it('Gen User Progress Table', () => { // projects page cy.visit('/administrator/projects/movies/users') @@ -51,10 +60,10 @@ context('Admin: Generate Screenshots', () => { 'dirty': true }]); // projects page - cy.visit('/administrator') - cy.get('[data-cy="projectCard_movies"]'); - cy.get('[data-cy="projectCard_shows"]'); - cy.snap('page-projects-dark-mode'); + cy.visit('/administrator/projects/movies') + cy.get('[data-cy="projectLastReportedSkillValue"]'); + cy.get('[data-cy="manageBtn_Action"]'); + cy.snap('page-project-dark-mode'); cy.request('POST', '/app/userInfo/settings', [{ 'settingGroup': 'user.prefs', @@ -116,7 +125,7 @@ context('Admin: Generate Screenshots', () => { cy.snap('modal-skills-new_skill', '.p-dialog') }) - it.only('Gen Self Report page', () => { + it('Gen Self Report page', () => { cy.viewport(1350, 1200); cy.visit('/administrator/projects/movies/badges') diff --git a/docs/.vuepress/components/RequiresRole.vue b/docs/.vuepress/components/RequiresRole.vue index ba197b73..908aba65 100644 --- a/docs/.vuepress/components/RequiresRole.vue +++ b/docs/.vuepress/components/RequiresRole.vue @@ -3,9 +3,9 @@ defineProps(['role']) @@ -16,5 +16,7 @@ defineProps(['role']) background-color: #faf2da; padding: 0.2rem 0.8rem; border-radius: 10px; + margin-top: 0.5rem; + display: inline-block; } diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index 607fd001..e0367938 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -25,12 +25,14 @@ const videosJson = require('./components/videos/skilltree-training-videos.json') * removeProgressAndRankingPageFromDashboardUserGuide=true: remove Progress and Ranking section if Progress and Ranking views are disabled * removeContributionsGuide=true: remove Contribution Guide form docs * noExternalLinks=true: there will be no external links in the docs + * removeDocsForRootRole=true: remove docs for root role */ let removeInstallGuide = false; let removeProgressAndRankingPageFromDashboardUserGuide = false; let removeProgressAndRankingInstallNote = false; let removeContributionsGuide = false; +let removeDocsForRootRole = false; let removeAuthPageFromIntegrationGuide = false; let pkiAuthInstallOnly = false; @@ -75,10 +77,13 @@ if (confValue) { removeContributionsGuide = true; } else if (key === 'noExternalLinks' && val === 'true') { noExternalLinks = true; + } else if (key === 'removeDocsForRootRole' && val === 'true') { + removeDocsForRootRole = true; } }) } +const showDocsForRootRole = !removeDocsForRootRole; if (pkiAuthInstallOnly && passAuthInstallOnly) { throw '\n ----- \n ----- \n !!!!!! CONFIG ERROR: Can no have both pkiAuthInstallOnly=false and passAuthInstallOnly=false !!!!!!\n -----\n ----- \n' @@ -87,7 +92,7 @@ if (pkiAuthInstallOnly && passAuthInstallOnly) { let nav = [ { text: 'Overview', link: '/overview/' }, { text: 'Install Guide', link: '/dashboard/install-guide/' }, - { text: 'Dashboard User Guide', link: '/dashboard/user-guide/' }, + { text: 'Admin User Guide', link: '/dashboard/user-guide/' }, { text: 'Integration Guide', link: '/skills-client/' }, { text: 'Contribute', link: '/contribution/' }, ]; @@ -176,13 +181,17 @@ sidebar = sidebar.concat([{ } ]); +if (removeDocsForRootRole) { + const dashboardGuide = sidebar.find((item) => item.text === 'Admin User Guide'); + dashboardGuide.children = dashboardGuide.children.filter((item) => !item.endsWith('contact-admins')) +} if (removeInstallGuide) { const toFilter = 'Install Guide'; nav = nav.filter((item) => item.text !== toFilter); sidebar = sidebar.filter((item) => item.text !== toFilter); } if (removeProgressAndRankingPageFromDashboardUserGuide) { - const dashboardGuide = sidebar.find((item) => item.text === 'Dashboard User Guide'); + const dashboardGuide = sidebar.find((item) => item.text === 'Admin User Guide'); dashboardGuide.children = dashboardGuide.children.filter((item) => !item.endsWith('progress-and-ranking')) } if (removeAuthPageFromIntegrationGuide) { @@ -256,6 +265,7 @@ export default defineUserConfig({ skillTreeServiceUrl: skillTreeServiceUrl && skillTreeServiceUrl.length > 0 && skillTreeServiceUrlDefaultValue !== skillTreeServiceUrl, showInstallGuide: !removeInstallGuide, showContributionGuide: !removeContributionsGuide, + showDocsForRootRole, noExternalLinks, }, installType: installTypeProp, diff --git a/docs/dashboard/install-guide/config.md b/docs/dashboard/install-guide/config.md index 9c9b69e1..9b049202 100644 --- a/docs/dashboard/install-guide/config.md +++ b/docs/dashboard/install-guide/config.md @@ -419,12 +419,15 @@ on that instance of the SkillTree platform. It provides a single point of access user as well as a mechanism for Projects that consist entirely of self-reported Skills to provide access to the [Ranking and Progress](/dashboard/user-guide/progress-and-ranking.html) display for their users. -Progress and Ranking Views are disabled by default, but can be easily enabled: +Progress and Ranking Views are enabled by default, but can be easily disabled: ```properties # enable Progress and Ranking Views -skills.config.ui.rankingAndProgressViewsEnabled=true +skills.config.ui.rankingAndProgressViewsEnabled=false +``` +When enabled the default landing page can be customized: +```properties # optionally change default for the landing page (admin is the default) skills.config.ui.defaultLandingPage=progress ``` diff --git a/docs/dashboard/user-guide/README.md b/docs/dashboard/user-guide/README.md index 08deb34c..a7e6b24a 100644 --- a/docs/dashboard/user-guide/README.md +++ b/docs/dashboard/user-guide/README.md @@ -55,7 +55,6 @@ Consider the following items when designing your training profile: - The Skills dashboard supports two ways to manage levels: Percentage Based (default) and Point based. If you are not sure which to go with stick with the default. 1. [Badges](/dashboard/user-guide/badges.html): Badges add another facet to the overall gamification training profile and allow you to further reward your users by providing these prestigious symbols of achievement. - Badges are a collection of skills and when all of the skills are completed that badge is awarded. -1. [Global Badges](/dashboard/user-guide/badges.html#global-badges): Global Badges are a special kind of badge that is made up of a collection of skills and/or levels that span across project boundaries. 1. [Learning Path](/dashboard/user-guide/learning-path.html): Learning Path adds another facet to the overall gamification training profile, which forces users to complete skills in a specified order. 1. [Cross-Project Prerequisites](/dashboard/user-guide/learning-path.html#cross-project-prerequisites): Cross-Project Prerequisites facilitate cross-application training and enable users to become domain experts across several applications. - These dependencies are critical when actions are required to be performed in more than one tool in order to complete a task. diff --git a/docs/dashboard/user-guide/badges.md b/docs/dashboard/user-guide/badges.md index 615924f1..e1758931 100644 --- a/docs/dashboard/user-guide/badges.md +++ b/docs/dashboard/user-guide/badges.md @@ -61,6 +61,8 @@ Multiple skills can be easily added to an existing badge via the following steps - Use the `Action` button on the top-right above the skills' table to select `Add To Badge` action - Follow `Add To Badge` workflow to choose which badge selected skills are added to + + ## Global Badges Global Badges are a special kind of badge that is made up of a collection of skills and/or levels that span across project boundaries. @@ -83,3 +85,5 @@ Creating Global Badges is simple (): - When initially created, a badge is in a Disabled state. This is to allow dependencies to be fully added to the badge before it can be achieved by users. 1. After assigning skills and or project levels, locate the badge in the ``Badges`` view and click the ``Go Live`` link on the bottom right of the Badge overview. - When the badge is published, any users with existing achievements that meet the badge requirements will be awarded the badge at that time. + + \ No newline at end of file diff --git a/docs/dashboard/user-guide/common/projects-screenshot.md b/docs/dashboard/user-guide/common/projects-screenshot.md new file mode 100644 index 00000000..73900bd2 --- /dev/null +++ b/docs/dashboard/user-guide/common/projects-screenshot.md @@ -0,0 +1,11 @@ + + +![page-projects.png](../../../screenshots/admin/page-projects-not-root.png) + + + + + +![page-projects.png](../../../screenshots/admin/page-projects.png) + + \ No newline at end of file diff --git a/docs/dashboard/user-guide/progress-and-ranking.md b/docs/dashboard/user-guide/progress-and-ranking.md index ab2c79af..f57feee4 100644 --- a/docs/dashboard/user-guide/progress-and-ranking.md +++ b/docs/dashboard/user-guide/progress-and-ranking.md @@ -3,20 +3,6 @@ The Progress and Ranking pages visualize the user's current Progress and Ranking across **multiple** projects. There is also a way to drill-down into a specific project to view its progress and ranking. - - -::: warning Please Note -Progress and Ranking views are optional pages and not all of the SkillTree installations will have them enabled. -These views are enabled through start-up configuration [Progress and Ranking views properties](/dashboard/install-guide/config.html#progress-and-ranking-views). -Progress and Ranking pages are generally only applicable when -- there are a number of applications integrated with this SkillTree installation -- the same users utilize multiple integrated applications -- the SkillTree dashboard is used to allow users access to [Self-Reported skills](/dashboard/user-guide/self-reporting.html). -::: - - - - The Progress and Ranking views support: 1. Customization of [My Projects](#manage-my-projects-page) - only view progress and ranking for the selected projects 1. Customization of the sort order of 'My Projects' @@ -29,6 +15,9 @@ will feature extra navigation options of ```Progress and Ranking``` and ```Proje ![SkillTree Dashboard Menu](../../screenshots/admin/component-settings-menu.png) +::: tip +Progress and Ranking views are covered in detail in the [Training Participation Guide](/training-participation/) +::: ## Projects Catalog @@ -113,11 +102,14 @@ The ``Contact Project`` button displays the contact form where users can enter a Once the ``Submit`` button is clicked an email with the provided message is sent to all project's admins. + + ::: danger IMPORTANT Please note that the ``Contact Project`` button is only display if the [Email Server Settings](/dashboard/user-guide/settings.html#email-settings) are configured, otherwise the button is not displayed as emails cannot be sent. ::: + ## Daily Usage Page @@ -130,12 +122,8 @@ You can view your daily usage for the selected projects by visiting the ``My Usa The admin view provides access for project administrators to create and manage training profiles. The page is clearly labeled with an ``Admin`` stamp which visually differentiates it from the Progress and Ranking view -![SkillTree Dashboard Admin View](../../screenshots/admin/page-projects.png) + To get started with managing a training profile create a [Project](/dashboard/user-guide/projects.html) followed by [Subjects](/dashboard/user-guide/subjects.html) and then [Skills](/dashboard/user-guide/skills.html). -Please visit the [Building Training Profile](/dashboard/user-guide/#building-training-profile) section to learn more. - -::: tip NOTE -Please note that in the rare case that a single user creates more than 10 projects, they will be displayed in tabular format instead of the default card display. -::: +Please visit the [Building Training Profile](/dashboard/user-guide/#building-training-profile) section to learn more. diff --git a/docs/dashboard/user-guide/projects.md b/docs/dashboard/user-guide/projects.md index 93371dae..e8c49a40 100644 --- a/docs/dashboard/user-guide/projects.md +++ b/docs/dashboard/user-guide/projects.md @@ -3,13 +3,13 @@ A Project is an overall container that represents the skills ruleset for a single application with gamified training. Project's administrator(s) manage skill definitions, subjects, levels, dependencies and other attributes that make up an application's training profile. - -![SkillTree Projects Admin](../../screenshots/admin/page-projects.png) + Creating a project is simple, all you need is a name. While the project id is required, it will be automatically generated (you can optionally override the generated id). ::: tip -As of 2.1.0 there is now a description field available for projects. Where the project description is displayed is controlled by the new [Project Description](/dashboard/user-guide/projects.html#setting-project-description) setting in Project Settings +You can optionally add a project description. Where project description is shown can be configured in Project Settings +using the [Project Description](/dashboard/user-guide/projects.html#setting-project-description) setting. ::: diff --git a/docs/dashboard/user-guide/settings.md b/docs/dashboard/user-guide/settings.md index b49419e1..0833b5cf 100644 --- a/docs/dashboard/user-guide/settings.md +++ b/docs/dashboard/user-guide/settings.md @@ -26,9 +26,12 @@ Change this setting to true and you will not be shown on the Leaderboard or assi Enabling Dark Mode will switch UI into light-on-dark color scheme. For example: -![page-projects-dark-mode.png](../../screenshots/admin/page-projects-dark-mode.png) +![page-project-dark-mode.png](../../screenshots/admin/page-project-dark-mode.png) -## Security Settings + + +## Security Settings + The ```Security``` menu item supports the administration of [Root](/dashboard/user-guide/users.html#root) users and [Supervisor](/dashboard/user-guide/users.html#supervisor) users. @@ -37,7 +40,8 @@ The ```Security``` menu item supports the administration of [Root](/dashboard/us To grant [Root](/dashboard/user-guide/users.html#root) or [Supervisor](/dashboard/user-guide/users.html#supervisor) privileges to a user, that user must have an existing account for the SkillTree Dashboard. User management will also prevent the removal of any permissions from the currently authenticated user. -## Email Settings +## Email Settings + The SkillTree dashboard will send emails in support of various tasks including: - password reset requests for Dashboard users, @@ -74,7 +78,9 @@ In order for the notifications to work the following must be configured: - Set ``Public URL`` in the [System Settings](/dashboard/user-guide/settings.html#system-settings) - Set ``From Email`` in the [System Settings](/dashboard/user-guide/settings.html#system-settings) -## System Settings +## System Settings + + ![System Settings](../../screenshots/admin/page-settings-system.png) @@ -104,4 +110,4 @@ The example below configures custom header and footer: ![Custom Header Input](../../screenshots/admin/page-custom-headerAndFooter.png) - + \ No newline at end of file diff --git a/docs/dashboard/user-guide/users.md b/docs/dashboard/user-guide/users.md index 819c2db5..e6d89112 100644 --- a/docs/dashboard/user-guide/users.md +++ b/docs/dashboard/user-guide/users.md @@ -79,7 +79,10 @@ The Project Approver role is allowed to approve and deny [Self Reporting](/dashb Please visit [Project's Access Page](/dashboard/user-guide/projects.html#access) in order to learn how to add/remove project's roles. + + ### Root + The Root role is meant for administering the dashboard itself and not any specific project. Users with the Root role can view the Inception project. Users with the Root role can also assign Supervisor and Root roles to other dashboard users. @@ -90,6 +93,8 @@ The Supervisor role allows users to manage Global Badges. Only users with the Ro Please visit the [Security Setting Section](/dashboard/user-guide/settings.html#security-settings) to learn how to assign this role. + + ## Skills Display / Client Display You can see what the skills profile and progress display would like for a particular user by navigating to a specific user page in the dashboard - ``Project -> Users -> Select a User -> User's Display``. diff --git a/docs/overview/README.md b/docs/overview/README.md index 88ca79f9..49cc420e 100644 --- a/docs/overview/README.md +++ b/docs/overview/README.md @@ -27,7 +27,7 @@ SkillTree Platform enables trainers, system owners and developers to: ::: tip Good to Know! - You can visit dashboard at - Feel free to create a project while working through this guide! You can always remove the project if you are done exploring SkillTree features. - ::: +::: diff --git a/docs/screenshots/admin/page-project-dark-mode.png b/docs/screenshots/admin/page-project-dark-mode.png new file mode 100644 index 00000000..54da3088 Binary files /dev/null and b/docs/screenshots/admin/page-project-dark-mode.png differ diff --git a/docs/screenshots/admin/page-projects-dark-mode.png b/docs/screenshots/admin/page-projects-dark-mode.png deleted file mode 100644 index b4992341..00000000 Binary files a/docs/screenshots/admin/page-projects-dark-mode.png and /dev/null differ diff --git a/docs/screenshots/admin/page-projects-not-root.png b/docs/screenshots/admin/page-projects-not-root.png new file mode 100644 index 00000000..a6fadd13 Binary files /dev/null and b/docs/screenshots/admin/page-projects-not-root.png differ