Follow-up from "Add Quick start section for learn gitlab redesign"

The following discussions from !190103 (merged) should be addressed:

  • use invite_member policy everywhere

  • @sheldonled started a discussion: (+2 comments)

    issue (non-blocking): We have this copy namespaced in LearnGitLab|Add code owners. We should un-namespace it to ease translations.

    Same for Analyze your application for vulnerabilities with DAST; Assign a GitLab Duo seat to your colleagues and others

  • @sheldonled started a discussion: (+1 comment)

    nitpick (non-blocking): Since we're not using the icon constants in the template, we can reference it directly:

      props: {
        section: {
          required: true,
          type: Object,
        },
        isExpanded: {
          required: true,
          type: Boolean,
        },
        sectionIndex: {
          type: Number,
          required: true,
        },
      },
      emits: ['toggle-expand'],
      computed: {
        allActions() {
          const { actions = [], trialActions = [] } = this.section;
          return [...actions, ...trialActions];
        },
    
        actionCounts() {
          const { actions = [], trialActions = [] } = this.section;
    
          const completedActions = actions.filter((action) => action.completed).length;
          const completedTrialActions = trialActions.filter((action) => action.completed).length;
    
          return {
            completed: completedActions + completedTrialActions,
            total: actions.length + trialActions.length,
          };
        },
    
        completionText() {
          const { completed, total } = this.actionCounts;
          return sprintf(__('%{completed}/%{total} completed'), {
            completed,
            total,
          });
        },
    
        completionIcon() {
          if (this.allActions.length === 0) return ICON_TYPE_EMPTY;
    
          const { completed, total } = this.actionCounts;
    
          if (completed === 0) return ICON_TYPE_EMPTY;
          if (completed < total) return ICON_TYPE_PARTIAL;
    
          return ICON_TYPE_COMPLETED;
        },
  • @sheldonled started a discussion:

    nitpick (non-blocking): Since we're not using the icons in the template, we don't need to make it part of the $options object.

      urlType: 'invite',
      mixins: [Tracking.mixin({ category: 'projects:learn_gitlab:show' })],
      props: {
        action: {
          type: Object,
          required: true,
        },
      },
      computed: {
        iconName() {
          return this.action.completed ? ICON_TYPE_COMPLETED : ICON_TYPE_EMPTY;
        },

    Also, it looks like we don't need ICON_TYPE_PARTIAL here

Edited by Doug Stull