diff --git a/cypress/e2e/admin.cy.js b/cypress/e2e/admin.cy.js index 58dc7769..cd642a1e 100644 --- a/cypress/e2e/admin.cy.js +++ b/cypress/e2e/admin.cy.js @@ -761,6 +761,78 @@ context('Admin: Generate Screenshots', () => { }) + Cypress.Commands.add('deleteSkillTag', (tagId, projectId = 'movies') => { + cy.request('DELETE', `/admin/projects/${projectId}/skills/tag`, { + removeTagFully: true, + retainTag: false, + skillIds: [], + tagId: tagId + }); + }); + + Cypress.Commands.add('selectSkill', (selector, skillId, searchString = '', projId='movies') => { + 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() + }) + + it('page - skill tags', () => { + cy.visit('/administrator/projects/movies/skill-tags/'); + cy.get('[data-cy="noContent"]').contains('No Tags Yet') + + cy.get('[data-cy="btn_Skill Tags"]').click() + cy.get('[data-cy="tagValue"]').should("have.focus") + cy.get('[data-cy="saveDialogBtn"]').should('be.disabled') + cy.get('[data-cy="tagValue"]').should('be.visible') + cy.get('[data-cy="tagValue"]').type('Despicable Me Collection'); + cy.get('[data-cy="saveDialogBtn"]').should('be.enabled') + cy.get('[data-cy="saveDialogBtn"]').click(); + + cy.get('[data-cy="noContent"]').should('not.exist'); + + cy.get('[data-cy="btn_Skill Tags"]').click() + cy.get('[data-cy="tagValue"]').should("have.focus") + cy.get('[data-cy="saveDialogBtn"]').should('be.disabled') + cy.get('[data-cy="tagValue"]').should('be.visible') + cy.get('[data-cy="tagValue"]').type('The Twilight Collection'); + cy.get('[data-cy="saveDialogBtn"]').should('be.enabled') + cy.get('[data-cy="saveDialogBtn"]').click(); + + cy.get('[data-cy="btn_Skill Tags"]').click() + cy.get('[data-cy="tagValue"]').should("have.focus") + cy.get('[data-cy="saveDialogBtn"]').should('be.disabled') + cy.get('[data-cy="tagValue"]').should('be.visible') + cy.get('[data-cy="tagValue"]').type('Harry Potter Collection'); + cy.get('[data-cy="saveDialogBtn"]').should('be.enabled') + cy.get('[data-cy="saveDialogBtn"]').click(); + + cy.snap('page-skill-tags') + + cy.visit('/administrator/projects/movies/skill-tags/harrypottercollection'); + cy.get('[data-cy="noContent"]').contains('No Skills Added Yet...') + cy.selectSkill('[data-cy="skillsSelector"]', 'HarryPotterandthePhilosophersStone'); + cy.selectSkill('[data-cy="skillsSelector"]', 'HarryPotterandtheChamberofSecrets'); + cy.selectSkill('[data-cy="skillsSelector"]', 'HarryPotterandthePrisonerofAzkaban'); + cy.selectSkill('[data-cy="skillsSelector"]', 'HarryPotterandtheDeathlyHallowsPart2'); + cy.selectSkill('[data-cy="skillsSelector"]', 'HarryPotterandtheGobletofFire'); + cy.selectSkill('[data-cy="skillsSelector"]', 'HarryPotterandtheDeathlyHallowsPart1'); + cy.selectSkill('[data-cy="skillsSelector"]', 'HarryPotterandtheOrderofthePhoenix'); + cy.selectSkill('[data-cy="skillsSelector"]', 'HarryPotterandtheHalfBloodPrince'); + + cy.snap('page-skill-tag') + + cy.deleteSkillTag('harrypottercollection') + cy.deleteSkillTag('despicablemecollection') + cy.deleteSkillTag('thetwilightcollection') + }) + + // it.only('page - single skill tag', () => { + // cy.snap('page-skill-tag.png') + // }) + it('page - admin groups', () => { cy.visit('/administrator/adminGroups/FancyGroup') cy.get('[data-cy="roleManagerTable"] [data-cy="skillsBTableTotalRows"]').should('have.text', '3') diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index 533d40bc..da56a8ac 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -124,6 +124,7 @@ sidebar = sidebar.concat([{ '/dashboard/user-guide/subjects', '/dashboard/user-guide/skills', '/dashboard/user-guide/self-reporting', + '/dashboard/user-guide/skills-tags', '/dashboard/user-guide/skills-catalog', '/dashboard/user-guide/skills-groups', '/dashboard/user-guide/rich-text-editor', diff --git a/docs/dashboard/user-guide/skills-tags.md b/docs/dashboard/user-guide/skills-tags.md new file mode 100644 index 00000000..b711c77a --- /dev/null +++ b/docs/dashboard/user-guide/skills-tags.md @@ -0,0 +1,23 @@ +# Skill Tags + +Skill tagging is a feature that allows administrators to add one or more custom "tags" to skills. +Adding tags to skills can help to categorize and group skills, giving users another way to search or filter a particular set of skills. +Skill tags are visualized in the Skills Display to give users consuming the training another way to comprehend, categorize and filter skills. + + +::: note Dedicated Skill Tags Page +There is now a dedicated Skill Tags page that provides a focused view for managing all skill tags across your project. There is also a dedicated +Single Skill Tag management page that enables administrators to manage tagged skills with the particular tag +::: + +## Skill Tags Management Page + +![Skill Tags Management Page](../../screenshots/admin/page-skill-tags.png) + +To manage skill tags access your project, navigate to ``Project -> Skill Tags``. From this page you can view all skill tags, create new skill tags and delete existing tags. + +## Single Skill Tag Management Page + +Clicking on a skill tag name from the Skill Tags management page will bring you to the Single Skill Tag management page, where you can choose which skill(s) should include this tag, as well as update the Tag Value and Tag ID. +![Single Skill Tag Management](../../screenshots/admin/page-skill-tag.png) + diff --git a/docs/screenshots/admin/page-skill-tag.png b/docs/screenshots/admin/page-skill-tag.png new file mode 100644 index 00000000..99bf020b Binary files /dev/null and b/docs/screenshots/admin/page-skill-tag.png differ diff --git a/docs/screenshots/admin/page-skill-tags.png b/docs/screenshots/admin/page-skill-tags.png new file mode 100644 index 00000000..13f1e6b5 Binary files /dev/null and b/docs/screenshots/admin/page-skill-tags.png differ