diff --git a/cypress/e2e/admin.cy.js b/cypress/e2e/admin.cy.js index d5cc490b..690639b5 100644 --- a/cypress/e2e/admin.cy.js +++ b/cypress/e2e/admin.cy.js @@ -112,7 +112,7 @@ context('Admin: Generate Screenshots', () => { }); it('New Skill modals', () => { - cy.viewport(1350, 1800); + cy.viewport(1200, 2000); // new skill modal cy.visit('/administrator/projects/movies/subjects/Action/'); cy.get('[data-cy="newSkillButton"]').click(); @@ -362,6 +362,19 @@ context('Admin: Generate Screenshots', () => { cy.snap('page-video-config', '#mainContent2') }) + it('Slides Settings page', () => { + cy.visit('/administrator/projects/movies/subjects/Action/skills/WonderWoman/config-slides') + cy.get('[data-cy="saveSlidesSettingsBtn"]').should('be.disabled') + cy.snap('component-slides-config-empty', '#mainContent2') + + cy.visit('/administrator/projects/movies/subjects/Action/skills/Avatar/config-slides') + cy.get('[data-cy="nextSlideBtn"]').should('be.enabled') + cy.get('[data-cy="nextSlideBtn"]').click() + cy.get('#movies-AvatarContainer').contains('This is a first slide') + cy.snap('component-slides-config-with-slides', '#mainContent2') + + }) + it('Gen Expiration Settings page', () => { cy.visit('/administrator/projects/movies/subjects/Action/skills/TheMatrix/config-expiration') cy.snap('page-expiration-config', '[data-cy="nav"]') @@ -665,6 +678,30 @@ context('Admin: Generate Screenshots', () => { cy.get('[data-cy="adminGroupQuizzesTable"] [data-cy="skillsBTableTotalRows"]').should('have.text', '3') cy.snap('page-admin-groups-quizzes') + cy.visit('/administrator/adminGroups/FancyGroup/group-global-badges') + cy.get('[data-cy="adminGroupGlobalBadgesTable"] [data-cy="skillsBTableTotalRows"]').should('have.text', '1') + cy.snap('page-admin-groups-global-badges') + }) + + it('page - global badges', () => { + cy.visit('/administrator/globalBadges/MoviesandShowsExpertBadge') + cy.get('[data-cy="noContent"]').contains('No Skills Added Yet'); + cy.selectSkill('[data-cy="skillsSelector"]', 'FindingNemo', 'nemo', 'movies'); + cy.selectSkill('[data-cy="skillsSelector"]', 'UnbreakableKimmySchmidt', 'kimmy', 'shows'); + cy.snap('page-global-badge-skills') + + cy.visit('/administrator/globalBadges/MoviesandShowsExpertBadge/levels') + cy.get('[data-cy="simpleLevelsTable"] [data-cy="skillsBTableTotalRows"]').should('have.text', '2') + cy.snap('page-global-badge-levels') + + cy.visit('/administrator/globalBadges/MoviesandShowsExpertBadge/access') + cy.get('[data-cy="existingUserInput"]').type('bob1'); + cy.wait(500); + cy.get('#existingUserInput_0').contains('bob1').click(); + cy.get('[data-cy="addUserBtn"]').click(); + + cy.get('[data-cy="userCell_bob1@email.org"]') + cy.snap('page-global-badge-access') }) it('Notifications', () => { diff --git a/cypress/support/commands.js b/cypress/support/commands.js index 406b3caa..26509a8e 100644 --- a/cypress/support/commands.js +++ b/cypress/support/commands.js @@ -133,4 +133,13 @@ Cypress.Commands.add('selectItem', (selector, item, openPicker = true, autoCompl cy.get(itemToSelect).click(); } cy.get('[data-pc-section="overlay"] [data-pc-section="optionlabel"]').contains(item).click(); +}) + +Cypress.Commands.add('selectSkill', (selector, skillId, searchString = '', projId='proj1') => { + cy.get(selector).blur({force: true}) + cy.get(selector).click() + if (searchString) { + cy.get(selector).type(`{selectall}${searchString}`) + } + cy.get(`[data-cy="skillsSelectionItem-${projId}-${skillId}"]`).click() }) \ No newline at end of file diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index e0367938..dcc6be51 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -130,6 +130,7 @@ sidebar = sidebar.concat([{ '/dashboard/user-guide/quizzes-and-surveys', '/dashboard/user-guide/admin-groups', '/dashboard/user-guide/badges', + '/dashboard/user-guide/global-badges', '/dashboard/user-guide/learning-path', '/dashboard/user-guide/progress-and-ranking', '/dashboard/user-guide/icons', diff --git a/docs/dashboard/install-guide/config.md b/docs/dashboard/install-guide/config.md index 9b049202..d1fa46ed 100644 --- a/docs/dashboard/install-guide/config.md +++ b/docs/dashboard/install-guide/config.md @@ -333,6 +333,30 @@ skills.websocket.relayHost= skills.websocket.relayPort= ``` +### Matomo Integration + +SkillTree can be configured to integrate with , a free and open-source web analytics platform that serves as an alternative to Google Analytics. +This integration enables tracking of user activity and provides valuable insights into user behavior. + +To enable Matomo integration, configure the following properties: + +```properties +skills.config.ui.matomoUrl: +skills.config.ui.matomoSiteId: +``` + +### UI Logging for Debugging + +SkillTree can be configured to log predefined UI events for debugging purposes. +These logs are accessible through your browser's developer tools console. + +To enable UI logging, configure the following property: + +```properties +# Supported log levels: TRACE, DEBUG, INFO, WARN, ERROR +skills.config.ui.logLevel=TRACE +``` + ### JVM Heap These are System Properties. ```properties diff --git a/docs/dashboard/user-guide/README.md b/docs/dashboard/user-guide/README.md index a7e6b24a..fcf97dbe 100644 --- a/docs/dashboard/user-guide/README.md +++ b/docs/dashboard/user-guide/README.md @@ -50,6 +50,8 @@ Consider the following items when designing your training profile: 1. [Surveys](/dashboard/user-guide/quizzes-and-surveys.html): A Survey is a data collection technique utilizing one or more questions. - Associating a Survey to an existing skill will require completion of that Survey in order to earn the skill and its points. - When associated to a skill, the survey is a method to gather feedback about that skill or collect some pieces of important data related to the skill. +1. [Slides](/dashboard/user-guide/skills.html#slide-deck): A seamless integration of PDF-based slide decks directly into skills, allowing you to enhance training materials with professionally designed presentations created in tools like PowerPoint and exported as PDFs. +1. [Video/Audio](/dashboard/user-guide/skills.html#audio-video): SkillTree allows embedding videos or audios clips into skill descriptions, with optional configuration settings to achieve the skill upon full playback. 1. [Levels](/dashboard/user-guide/levels.html): Levels are users' achievement path - the overall goal of the training profile is to encourage users to achieve the highest level. - Levels are tracked for the entire project as well as for each subject which provides users many ways to progress forward, as well as frequent positive reinforcement opportunities. - 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. diff --git a/docs/dashboard/user-guide/admin-groups.md b/docs/dashboard/user-guide/admin-groups.md index 8e648f53..612a5243 100644 --- a/docs/dashboard/user-guide/admin-groups.md +++ b/docs/dashboard/user-guide/admin-groups.md @@ -1,8 +1,8 @@ # Admin Groups -Admin Groups streamline the ability to manage a list of administrators for one or more projects and/or quizzes. -Once an Admin Group is created you can easily add and remove members to and from the group. A group can then be assigned to one or more projects and/or quizzes -which then allows the members of the group to have administrative privileges to the assigned projects and/or quizzes. +Admin Groups streamline the ability to manage a list of administrators for one or more projects, quizzes and global badges +Once an Admin Group is created you can easily add and remove members to and from the group. A group can then be assigned to one or more projects, quizzes, or global badges +which then allows the members of the group to have administrative privileges to the assigned projects, quizzes and global badges. To create an admin group please navigate to the ``Admin Groups`` page and then click the ``Admin Group +`` button. @@ -15,3 +15,7 @@ To assign a group to a project please navigate to ``Adming Groups -> Projects`` To assign a group to a quiz please navigate to ``Adming Groups -> Quizzes`` then select one of the existing quizzes from the dropdown. ![page-admin-groups-quizzes.png](../../screenshots/admin/page-admin-groups-quizzes.png) + +To assign a group to a global badge please navigate to ``Adming Groups -> Global Badges`` then select one of the existing global badges from the dropdown. + +![page-admin-groups-global-badges.png](../../screenshots/admin/page-admin-groups-global-badges.png) diff --git a/docs/dashboard/user-guide/badges.md b/docs/dashboard/user-guide/badges.md index e1758931..23a71daf 100644 --- a/docs/dashboard/user-guide/badges.md +++ b/docs/dashboard/user-guide/badges.md @@ -59,31 +59,4 @@ Multiple skills can be easily added to an existing badge via the following steps - Navigate to the `Subject` administrative page page `Project -> Subject` - Use checkmark to select multiple skills OR click `Select All` to select all the skills defined under this subject. - 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. - -Global Badges consist of: -- *Project's Levels*: Project levels that a user must achieve in order to earn the badge -- *List of Skills*: Skills from any project - -When all of the configured skills and levels are accomplished, that badge is achieved. -Global Badges are specifically used to reward users for achieving skills that involve multiple projects, -and can only be created by Dashboard users that have the [Supervisor](/dashboard/user-guide/users.html#user-roles) role. - -Creating Global Badges is simple (): - -1. Navigate to ``Home -> Badges`` and click ``Badge +`` - - You can (and should) assign an [Icon](/dashboard/user-guide/icons.html) to your badge. -1. Once a badge is created you can assign existing skills and/or project levels to that badge. - - To assign skills, ``Home -> Badge -> Manage -> Skills`` - - To assign project levels, ``Home -> Badge -> Manage -> Levels`` - - 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 +- Follow `Add To Badge` workflow to choose which badge selected skills are added to \ No newline at end of file diff --git a/docs/dashboard/user-guide/global-badges.md b/docs/dashboard/user-guide/global-badges.md new file mode 100644 index 00000000..d2495d00 --- /dev/null +++ b/docs/dashboard/user-guide/global-badges.md @@ -0,0 +1,50 @@ +# Global Badges + +Global Badges recognize and reward users for achieving skills and levels across multiple projects. These badges help track and celebrate comprehensive skill development that spans different project boundaries. Global Badges can include skills and levels from any project you have Admin access to. + +## Overview + +Global Badges are awarded when users meet specific criteria that can include: +- Skills from multiple projects +- Project level achievements +- Any combination of the above + +## Components of Global Badges + +### Project Levels +Earn badges by reaching specific levels across different projects. These levels demonstrate consistent growth and achievement within individual projects. + +![Global Badge Levels](../../screenshots/admin/page-global-badge-levels.png) + +### Skills +Showcase expertise by completing specific skills from any project you have access to. These can be combined to create comprehensive achievement paths. + +![Global Badge Skills](../../screenshots/admin/page-global-badge-skills.png) + +## Access + +The Access page supports adding or removing Global Badges Administrators. To add and remove Administrators +please navigate to ``Home -> Global Badges -> Manage -> Access`` page. + +![Global BadgeAccess](../../screenshots/admin/page-global-badge-access.png) + +## Creating Global Badges + +### Step 1: Create a New Badge +1. Navigate to `Home -> Global Badges` +2. Click the `Badge +` button +3. **Recommended**: Add a descriptive [Icon](/dashboard/user-guide/icons.html) for better visual recognition + +### Step 2: Configure Badge Requirements +After creation, set up the badge criteria: +- **Adding Skills**: `Home -> Global Badges -> Manage -> Skills` +- **Setting Level Requirements**: `Home -> Global Badges -> Manage -> Levels` + +> **Note**: New badges start in a Disabled state, allowing you to fully configure all requirements before they become available to users. + +### Step 3: Publish the Badge +1. Go to the `Global Badges` view +2. Locate your badge +3. Click the `Go Live` button in the bottom-right corner of the Badge overview + +> **Important**: When published, the system automatically awards the badge to all users who already meet the requirements. \ No newline at end of file diff --git a/docs/dashboard/user-guide/icons.md b/docs/dashboard/user-guide/icons.md index bf82e349..11a85462 100644 --- a/docs/dashboard/user-guide/icons.md +++ b/docs/dashboard/user-guide/icons.md @@ -3,7 +3,9 @@ The skills platform offers customization of icons for the following items: - [Subjects](/dashboard/user-guide/subjects.html) +- [Skills](/dashboard/user-guide/skills.html) - [Badges](/dashboard/user-guide/badges.html) +- [Global Badges](/dashboard/user-guide/global-badges.html) When creating or editing these items you can click on the default icon to bring up the icon selector: diff --git a/docs/dashboard/user-guide/projects.md b/docs/dashboard/user-guide/projects.md index e8c49a40..dd4200e1 100644 --- a/docs/dashboard/user-guide/projects.md +++ b/docs/dashboard/user-guide/projects.md @@ -164,9 +164,21 @@ The ``Project User: Invite`` and ``Project User: Revoke`` user interface control ::: #### Invite Users -Users are invited to join a project that has been configured as ``Private Invite Only`` via email. Invite recipients are added via the ``Email Addresses`` input field and can be added one at a time or by using a comma or semicolon separated list -or by entering one email address per line in the ``Email Addresses`` input field (email addresses in the form of `` Firstname Lastname`` are also supported). Once email addresses have been entered into the ``Email Addresses`` input field, -they must be added as recipients using the ``Add Recipients`` button. These steps may be performed several times before the ``Send Invites`` button is pressed at which point all accumulated email addresses will be sent an email with a unique, one-time use invite to join the project. + +Users can be invited to join a project configured as ``Private Invite Only`` via email. To invite users: + +1. Enter email addresses in the ``Email Addresses`` field using any of these formats: + - One at a time + - Comma or semicolon separated list + - One per line + - With display names (e.g., `` Firstname Lastname``) is also supported +2. Click ``Add Recipients`` to add them to the recipient list +3. Repeat to add more recipients if needed +4. Optionally, add CC recipients in the ``CC Email Addresses`` field +5. Click ``Send Invites`` to deliver one-time use invitations to all recipients + +Each recipient will receive a unique, one-time use invitation to join the project. + ![Project Access](./screenshots/Component-Private-Project-Invite.png) diff --git a/docs/dashboard/user-guide/screenshots/Component-Private-Project-Invite.png b/docs/dashboard/user-guide/screenshots/Component-Private-Project-Invite.png index eb20b31d..26650db6 100644 Binary files a/docs/dashboard/user-guide/screenshots/Component-Private-Project-Invite.png and b/docs/dashboard/user-guide/screenshots/Component-Private-Project-Invite.png differ diff --git a/docs/dashboard/user-guide/skills.md b/docs/dashboard/user-guide/skills.md index 6e2b03e6..b13a6c98 100644 --- a/docs/dashboard/user-guide/skills.md +++ b/docs/dashboard/user-guide/skills.md @@ -10,19 +10,20 @@ To create a skill, navigate to ``Project -> Subject`` then click on ``Skill +``, ![SkillTree Skills Page](../../screenshots/admin/modal-skills-new_skill.png) -| Property | Explanation | -|:---------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Skill Name | Display name of the skill | -| Skill ID | Skill ID that will be used to report skill events | -| [Initial Visibility](/dashboard/user-guide/skills.html#skill-creation-lifecycle) | If the skill is initially visible or hidden. Hidden skills will not be visible to trainees effectively keeping the skill in a draft mode until it is ready to be exposed. | -| Point Increment | Number of points added for each skill event; used in conjunction with the 'Occurrences to Completion' property | -| Occurrences to Completion | Number of successful occurrences to fully accomplish this skill; used in conjunction with the 'Point Increment' property | -| [Time Window](/dashboard/user-guide/skills.html#time-window) | Used in conjunction with the 'Max Occurrences Within Window' property; once this Max Occurrences is reached, points will not be incremented until outside of the configured [Time Window](/dashboard/user-guide/skills.html#time-window). When 'Time Window' is disabled skill events are applied immediately." -| Max Occurrences Within Window | Used in conjunction with the [Time Window](/dashboard/user-guide/skills.html#time-window) property; Once this Max Occurrences is reached, points will not be incremented until outside of the configured [Time Window](/dashboard/user-guide/skills.html#time-window). | -| [Self Reporting](/dashboard/user-guide/self-reporting.html) | (Optional) When checked Self Reporting is enabled for this skill. The type of ``Approval Queue``, ``Honor System`` or ``Quiz/Survey`` can then be selected. When choosing Approval Queue, you may also choose to require users to submit a justification when self-reporting this skill by selecting the 'Justification Required' check box. When selecting ``Quiz/Survey`` you will also be prompted to pick an existing Quiz or a Survey. Please visit [Self Reporting](/dashboard/user-guide/self-reporting.html) to learn more. | -| Version | *(Optional)* Utilize [Skills Versioning](/dashboard/user-guide/skills.html#skills-versioning) to support running multiple versions of client software | -| [Description](/dashboard/user-guide/rich-text-editor.html) | *(Optional)* Description of how to perform this skill. | -| Help URL/Path | *(Optional)* URL pointing to a help article providing further information about this skill or capability. Please note that this property works in conjunction with the [Root Help Url](/dashboard/user-guide/projects.html#setting-root-help-url) project setting. You can also author external links into the description itself if more than one external resource needs to be linked to. | +| Property | Explanation | +|:---------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Skill [Icon](/dashboard/user-guide/icons.html) | Icon associated with the skill to be presented on the training pages | +| Skill Name | Display name of the skill | +| Skill ID | Skill ID that will be used to report skill events | +| [Initial Visibility](/dashboard/user-guide/skills.html#skill-creation-lifecycle) | If the skill is initially visible or hidden. Hidden skills will not be visible to trainees effectively keeping the skill in a draft mode until it is ready to be exposed. | +| Point Increment | Number of points added for each skill event; used in conjunction with the 'Occurrences to Completion' property | +| Occurrences to Completion | Number of successful occurrences to fully accomplish this skill; used in conjunction with the 'Point Increment' property | +| [Time Window](/dashboard/user-guide/skills.html#time-window) | Used in conjunction with the 'Max Occurrences Within Window' property; once this Max Occurrences is reached, points will not be incremented until outside of the configured [Time Window](/dashboard/user-guide/skills.html#time-window). When 'Time Window' is disabled skill events are applied immediately." +| Max Occurrences Within Window | Used in conjunction with the [Time Window](/dashboard/user-guide/skills.html#time-window) property; Once this Max Occurrences is reached, points will not be incremented until outside of the configured [Time Window](/dashboard/user-guide/skills.html#time-window). | +| [Self Reporting](/dashboard/user-guide/self-reporting.html) | (Optional) When checked Self Reporting is enabled for this skill. The type of ``Approval Queue``, ``Honor System`` or ``Quiz/Survey`` can then be selected. When choosing Approval Queue, you may also choose to require users to submit a justification when self-reporting this skill by selecting the 'Justification Required' check box. When selecting ``Quiz/Survey`` you will also be prompted to pick an existing Quiz or a Survey. Please visit [Self Reporting](/dashboard/user-guide/self-reporting.html) to learn more. | +| Version | *(Optional)* Utilize [Skills Versioning](/dashboard/user-guide/skills.html#skills-versioning) to support running multiple versions of client software | +| [Description](/dashboard/user-guide/rich-text-editor.html) | *(Optional)* Description of how to perform this skill. | +| Help URL/Path | *(Optional)* URL pointing to a help article providing further information about this skill or capability. Please note that this property works in conjunction with the [Root Help Url](/dashboard/user-guide/projects.html#setting-root-help-url) project setting. You can also author external links into the description itself if more than one external resource needs to be linked to. | ::: tip To calculate the total points that completion of a particular skill will give a user: @@ -80,6 +81,45 @@ You can also disable the Time Window property of a Skill, which will force each - "Repetition is the mother of learning" - use the ``Occurrences to Completion`` property in conjunction with the [Time Window](/dashboard/user-guide/skills.html#time-window) property to balance between requiring repetition of an action and spacing out that repetition (for example, prevent users from spamming an action in one sitting to max out a Skill by setting a Time Window of 1-8 hours) - Help Url - configure the [Root Help Url](/dashboard/user-guide/projects.html#setting-root-help-url) for the project and then enter a path relative to that root. It will then be an easy change if the location of help articles changes. You can also author external links into the description itself if more than one external resource needs to be linked to. +`` + +## Slide Deck + +SkillTree enables seamless integration of PDF-based slide decks directly into skills, allowing you to enhance training +materials with professionally designed presentations created in tools like PowerPoint and exported as PDFs. + +You have two methods to add slide decks: + +- **SkillTree Hosted:** Upload PDF files directly using the file upload form (Browse button) or via drag-and-drop +- **Externally Hosted:** Provide a URL to a PDF hosted on an external web server (e.g., https://example.com/slides.pdf) + +To set up a slide deck, navigate to `Project -> Subject -> Skill -> Slides` and upload your PDF file. + +![component-slides-config-empty.png](../../screenshots/admin/component-slides-config-empty.png) + +To upload slides from your computer, click the Browse button or drag and drop a file into the upload area. For externally +hosted slides, click "Switch to External Link" and enter the file's URL. Don't forget to click "Save and Preview" to +save your changes. + +A preview will appear in the Preview section once configured. + +![component-slides-config-with-slides.png](../../screenshots/admin/component-slides-config-with-slides.png) + +The built-in slide viewer offers: +- Intuitive navigation between slides +- PDF download capability +- Full-screen presentation mode +- Slide resizing (drag the bottom-right corner) + +::: tip +Resize slides by dragging the handle in the bottom-right corner. Click "Save Changes" to apply the new dimensions. +Trainees can also adjust slide sizes to their preference. These custom settings are automatically saved in the browser's local storage and will override the default dimensions. +::: + +In **full-screen mode**, users can: +- Navigate using `left`/`right` arrow keys +- Access navigation controls by hovering near the bottom +- Exit using the `Escape` key or the exit button in the navigation controls ## Audio/Video @@ -106,11 +146,6 @@ listened to the entire audio/video clip (>96%). This is done using the [Self Reporting](/dashboard/user-guide/self-reporting.html) mechanism, which can be easily selected by editing the skill and choosing the `Audio/Video` Self Reporting type. -::: tip -Note that self-reporting via audio/video playback completes the skill. When the `Audio/Video` type is selected, -`Occurrences to Completion` is set to `1` and cannot be changed. -::: - Additionally, if a transcript is configured for the audio/video, users can also earn the skill by reading the transcript and self-certifying to receive credit. diff --git a/docs/overview/README.md b/docs/overview/README.md index 49cc420e..b8016878 100644 --- a/docs/overview/README.md +++ b/docs/overview/README.md @@ -81,6 +81,8 @@ For example: - **Skills Catalog** - skills can be exported to the Catalog which makes those skills available for re-use in other projects - **Knowledge Checks** - requires successful passage of a quiz in order to earn the skill and its points - **Surveys** - method to get feedback about that skill or collect some pieces of important data related to the skill +- **Slides** - A seamless integration of PDF-based slide decks directly into skills, allowing you to enhance training materials with professionally designed presentations created in tools like PowerPoint and exported as PDFs. +- **Video/Audio** - SkillTree allows embedding videos or audios clips into skill descriptions and quiz questions, with optional configuration settings to achieve the skill upon full playback. - **Learning Path** - lay out a learning path for users to complete skills in a specified order - **Metrics** - corporate visibility of expertise and knowledge gaps diff --git a/docs/release-notes/skills-service.md b/docs/release-notes/skills-service.md index ad6c66d5..c43ac4b5 100644 --- a/docs/release-notes/skills-service.md +++ b/docs/release-notes/skills-service.md @@ -8,6 +8,32 @@ To obtain deployable artifacts please visit [Distributions](/dashboard/install-g +## 3.8.0 + +- Implemented ability to upload and manage [PDF slide decks](/dashboard/user-guide/skills.html#slide-deck) per skill, which are presented [during training](/training-participation/take-training.html#slides) for that specific skill. +- Implemented the ability to create [Global Badges](/dashboard/user-guide/global-badges.html) that can include skills and levels from any project for which you have Admin access +- Added support for customizing [icons](/dashboard/user-guide/icons.html) for individual skills, similar to subjects and badges. +- Added ability to [require videos](/dashboard/user-guide/skills.html#achieving-skills-through-audio-video-playback) to be played multiple times for completion +- Implemented Matomo Analytics support to the SkillTree dashboard +- Added [CC field](/dashboard/user-guide/projects.html#invite-users) for project invites +- Added Last Updated column to Skills Table +- Updated locked history chart appearance and wording +- Improved Dashboard loading performance by optimizing JS resource chunking and loading +- Upgraded Spring Boot +- Bug Fixes + +## 3.7.3 + +- Bug Fixes + +## 3.7.2 + +- Bug Fixes + +## 3.7.3 + +- Bug Fixes + ## 3.7.0 - [Training-wide Search](/training-participation/take-training.html#training-wide-search) - Training-wide search functionality that enables users to quickly find and navigate to any skill, subject, or badge by name diff --git a/docs/screenshots/admin/component-slides-config-empty.png b/docs/screenshots/admin/component-slides-config-empty.png new file mode 100644 index 00000000..a9678207 Binary files /dev/null and b/docs/screenshots/admin/component-slides-config-empty.png differ diff --git a/docs/screenshots/admin/component-slides-config-with-slides.png b/docs/screenshots/admin/component-slides-config-with-slides.png new file mode 100644 index 00000000..9d5d9a0b Binary files /dev/null and b/docs/screenshots/admin/component-slides-config-with-slides.png differ diff --git a/docs/screenshots/admin/modal-skills-new_skill.png b/docs/screenshots/admin/modal-skills-new_skill.png index a58dc336..e2b69ad4 100644 Binary files a/docs/screenshots/admin/modal-skills-new_skill.png and b/docs/screenshots/admin/modal-skills-new_skill.png differ diff --git a/docs/screenshots/admin/page-admin-groups-global-badges.png b/docs/screenshots/admin/page-admin-groups-global-badges.png new file mode 100644 index 00000000..99958625 Binary files /dev/null and b/docs/screenshots/admin/page-admin-groups-global-badges.png differ diff --git a/docs/screenshots/admin/page-admin-groups-projects.png b/docs/screenshots/admin/page-admin-groups-projects.png index 1839cee2..439e6b34 100644 Binary files a/docs/screenshots/admin/page-admin-groups-projects.png and b/docs/screenshots/admin/page-admin-groups-projects.png differ diff --git a/docs/screenshots/admin/page-admin-groups-quizzes.png b/docs/screenshots/admin/page-admin-groups-quizzes.png index df97facd..797ee985 100644 Binary files a/docs/screenshots/admin/page-admin-groups-quizzes.png and b/docs/screenshots/admin/page-admin-groups-quizzes.png differ diff --git a/docs/screenshots/admin/page-admin-groups.png b/docs/screenshots/admin/page-admin-groups.png index 4660c345..7e949951 100644 Binary files a/docs/screenshots/admin/page-admin-groups.png and b/docs/screenshots/admin/page-admin-groups.png differ diff --git a/docs/screenshots/admin/page-global-badge-access.png b/docs/screenshots/admin/page-global-badge-access.png new file mode 100644 index 00000000..65202e4f Binary files /dev/null and b/docs/screenshots/admin/page-global-badge-access.png differ diff --git a/docs/screenshots/admin/page-global-badge-levels.png b/docs/screenshots/admin/page-global-badge-levels.png new file mode 100644 index 00000000..e8ff4e9b Binary files /dev/null and b/docs/screenshots/admin/page-global-badge-levels.png differ diff --git a/docs/screenshots/admin/page-global-badge-skills.png b/docs/screenshots/admin/page-global-badge-skills.png new file mode 100644 index 00000000..72b92740 Binary files /dev/null and b/docs/screenshots/admin/page-global-badge-skills.png differ diff --git a/docs/training-participation/take-training.md b/docs/training-participation/take-training.md index bc0c3fdf..7ae1b063 100644 --- a/docs/training-participation/take-training.md +++ b/docs/training-participation/take-training.md @@ -171,6 +171,7 @@ Additional optional elements may appear in the skill details, depending on the s - **Self-Reporting**: Instructions for self-reporting progress and achieving consecutive completions (see [Self Reporting](/training-participation/take-training.html#self-reporting) for more details) - **Skill Tags**: Categories assigned by the training creator - **Prerequisites**: A list of required skills and a visual diagram of their relationships +- **Slides**: Optional presentations to further enhance training materials - **Enhanced Media**: Optional video or audio content to enrich the learning experience - **Expiration**: A clear deadline indicating when the skill will expire (if applicable) @@ -229,6 +230,25 @@ Click the **Complete Survey** button to get started. Be sure to review the skill Please visit [Quizzes and Surveys](#quizzes-and-surveys) section for further details on how to take a survey. +### Slides + +Some skills may include additional presentation materials in the form of slides, which appear above the skill's description. + +The built-in slide viewer offers: +- **Intuitive navigation between slides** - Use the previous and next buttons at the bottom of the slide viewer +- **PDF download capability** - Access the download button at the bottom right of the slide viewer +- **Full-screen presentation mode** - Click the full-screen button at the top right of the slide viewer +- **Slide resizing** - Drag the bottom-right corner handle that appears on hover + +::: tip +Resize the slides by dragging the bottom-right corner. Your preferred size will be saved in your browser's local storage. +::: + +In **full-screen mode**: +- Navigate using `left`/`right` arrow keys +- Access navigation controls by hovering near the bottom +- Exit using the `Escape` key or the exit button in the navigation controls + ### Audio/Video To earn points for this audio/video-based skill, you must watch or listen to the entire clip. The video/audio player is located above the skill's description.