Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 14 additions & 5 deletions cypress/e2e/admin.cy.js
Original file line number Diff line number Diff line change
Expand Up @@ -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('[email protected]');
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')
Expand Down Expand Up @@ -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',
Expand Down Expand Up @@ -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')
Expand Down
8 changes: 5 additions & 3 deletions docs/.vuepress/components/RequiresRole.vue
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ defineProps(['role'])
</script>

<template>
<span class="role">
🛡️ Requires <a :href="$withBase('/dashboard/user-guide/users.html#user-roles')" target="_blank"> <span class="">{{ role }}</span> Role</a>
</span>
<div class="role">
🛡️ <span>Requires <a :href="$withBase('/dashboard/user-guide/users.html#user-roles')" target="_blank"> <span class="">{{ role }}</span> Role</a></span>
</div>
</template>


Expand All @@ -16,5 +16,7 @@ defineProps(['role'])
background-color: #faf2da;
padding: 0.2rem 0.8rem;
border-radius: 10px;
margin-top: 0.5rem;
display: inline-block;
}
</style>
14 changes: 12 additions & 2 deletions docs/.vuepress/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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'
Expand All @@ -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/' },
];
Expand Down Expand Up @@ -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) {
Expand Down Expand Up @@ -256,6 +265,7 @@ export default defineUserConfig({
skillTreeServiceUrl: skillTreeServiceUrl && skillTreeServiceUrl.length > 0 && skillTreeServiceUrlDefaultValue !== skillTreeServiceUrl,
showInstallGuide: !removeInstallGuide,
showContributionGuide: !removeContributionsGuide,
showDocsForRootRole,
noExternalLinks,
},
installType: installTypeProp,
Expand Down
7 changes: 5 additions & 2 deletions docs/dashboard/install-guide/config.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
```
Expand Down
1 change: 0 additions & 1 deletion docs/dashboard/user-guide/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
4 changes: 4 additions & 0 deletions docs/dashboard/user-guide/badges.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

<conditional visibilityFlag="showDocsForRootRole">

## 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.
Expand All @@ -83,3 +85,5 @@ Creating Global Badges is simple (<requires-role role="Supervisor" />):
- 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.

</conditional>
11 changes: 11 additions & 0 deletions docs/dashboard/user-guide/common/projects-screenshot.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<conditional visibilityFlag="showDocsForRootRole" :visibility-value="false">

![page-projects.png](../../../screenshots/admin/page-projects-not-root.png)

</conditional>

<conditional visibilityFlag="showDocsForRootRole">

![page-projects.png](../../../screenshots/admin/page-projects.png)

</conditional>
28 changes: 8 additions & 20 deletions docs/dashboard/user-guide/progress-and-ranking.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.

<ClientOnly><conditional visibilityFlag="progressAndRankingInstallNote">

::: 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).
:::

</conditional></ClientOnly>


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'
Expand All @@ -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

Expand Down Expand Up @@ -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.

<conditional visibilityFlag="showDocsForRootRole">

::: 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.
:::

</conditional>

## Daily Usage Page

Expand All @@ -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)
<Content path="/dashboard/user-guide/common/projects-screenshot.md"/>

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.

6 changes: 3 additions & 3 deletions docs/dashboard/user-guide/projects.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)
<Content path="/dashboard/user-guide/common/projects-screenshot.md"/>

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.
:::


Expand Down
16 changes: 11 additions & 5 deletions docs/dashboard/user-guide/settings.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 <requires-role role="Root" />
<conditional visibilityFlag="showDocsForRootRole">

## Security Settings
<requires-role role="Root" />

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.

Expand All @@ -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 <requires-role role="Root" />
## Email Settings
<requires-role role="Root" />

The SkillTree dashboard will send emails in support of various tasks including:
- password reset requests for Dashboard users,
Expand Down Expand Up @@ -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 <requires-role role="Root" />
## System Settings

<requires-role role="Root" />

![System Settings](../../screenshots/admin/page-settings-system.png)

Expand Down Expand Up @@ -104,4 +110,4 @@ The example below configures custom header and footer:

![Custom Header Input](../../screenshots/admin/page-custom-headerAndFooter.png)


</conditional>
5 changes: 5 additions & 0 deletions docs/dashboard/user-guide/users.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.

<conditional visibilityFlag="showDocsForRootRole">

### 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.

Expand All @@ -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.

</conditional>

## 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``.
Expand Down
2 changes: 1 addition & 1 deletion docs/overview/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ SkillTree Platform enables trainers, system owners and developers to:
::: tip Good to Know!
- You can visit dashboard at <service-url />
- Feel free to create a project while working through this guide! You can always remove the project if you are done exploring SkillTree features.
:::
:::

</conditional>

Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed docs/screenshots/admin/page-projects-dark-mode.png
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.