diff --git a/cypress/e2e/admin.cy.js b/cypress/e2e/admin.cy.js index d5cc490b..5f791ecc 100644 --- a/cypress/e2e/admin.cy.js +++ b/cypress/e2e/admin.cy.js @@ -665,6 +665,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/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/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