forked from CIT/Vmeda.Online
		
	MOBILE-3744 splitview: Change selected item to aria-current attribute
This commit is contained in:
		
							parent
							
								
									9f42b80b06
								
							
						
					
					
						commit
						d8fa2142ea
					
				@ -17,8 +17,8 @@
 | 
			
		||||
            </core-empty-box>
 | 
			
		||||
 | 
			
		||||
            <ion-list *ngIf="!badges.empty"  class="ion-no-margin">
 | 
			
		||||
                <ion-item class="ion-text-wrap" *ngFor="let badge of badges.items" [title]="badge.name"
 | 
			
		||||
                    (click)="badges.select(badge)" [class.core-selected-item]="badges.isSelected(badge)">
 | 
			
		||||
                <ion-item button class="ion-text-wrap" *ngFor="let badge of badges.items" [title]="badge.name"
 | 
			
		||||
                    (click)="badges.select(badge)" [attr.aria-current]="badges.getItemAriaCurrent(badge)">
 | 
			
		||||
                    <ion-avatar slot="start">
 | 
			
		||||
                        <img [src]="badge.badgeurl" [alt]="badge.name" core-external-content>
 | 
			
		||||
                    </ion-avatar>
 | 
			
		||||
 | 
			
		||||
@ -43,7 +43,8 @@
 | 
			
		||||
                        <ion-label>{{ event.timestart * 1000 | coreFormatDate: "strftimedayshort" }}</ion-label>
 | 
			
		||||
                    </ion-item-divider>
 | 
			
		||||
                    <ion-item class="addon-calendar-event ion-text-wrap" [title]="event.name" (click)="gotoEvent(event.id)"
 | 
			
		||||
                    [class.core-selected-item]="event.id == eventId" [ngClass]="['addon-calendar-eventtype-'+event.eventtype]">
 | 
			
		||||
                        [attr.aria-current]="event.id == eventId ? 'page' : 'false'"
 | 
			
		||||
                        [ngClass]="['addon-calendar-eventtype-'+event.eventtype]">
 | 
			
		||||
                        <img *ngIf="event.moduleIcon" src="{{event.moduleIcon}}" slot="start" class="core-module-icon" alt=""
 | 
			
		||||
                            role="presentation">
 | 
			
		||||
                        <ion-icon *ngIf="event.eventIcon && !event.moduleIcon" [name]="event.eventIcon" slot="start"
 | 
			
		||||
 | 
			
		||||
@ -15,7 +15,7 @@
 | 
			
		||||
            <ion-list>
 | 
			
		||||
                <ion-item class="ion-text-wrap" *ngFor="let competency of competencies.items"
 | 
			
		||||
                    [title]="competency.competency.shortname" (click)="competencies.select(competency)"
 | 
			
		||||
                    [class.core-selected-item]="competencies.isSelected(competency)">
 | 
			
		||||
                    [attr.aria-current]="competencies.getItemAriaCurrent(competency)">
 | 
			
		||||
                    <ion-label>
 | 
			
		||||
                        <h2>{{ competency.competency.shortname }} <em>{{competency.competency.idnumber}}</em></h2>
 | 
			
		||||
                    </ion-label>
 | 
			
		||||
 | 
			
		||||
@ -17,7 +17,7 @@
 | 
			
		||||
            </core-empty-box>
 | 
			
		||||
            <ion-list *ngIf="!plans.empty"  class="ion-no-margin">
 | 
			
		||||
                <ion-item class="ion-text-wrap" *ngFor="let plan of plans.items" [title]="plan.name" (click)="plans.select(plan)"
 | 
			
		||||
                    [class.core-selected-item]="plans.isSelected(plan)">
 | 
			
		||||
                    [attr.aria-current]="plans.getItemAriaCurrent(plan)">
 | 
			
		||||
                    <ion-label>
 | 
			
		||||
                        <h2>{{ plan.name }}</h2>
 | 
			
		||||
                        <p *ngIf="plan.duedate > 0">
 | 
			
		||||
 | 
			
		||||
@ -39,7 +39,7 @@
 | 
			
		||||
                        <ion-item class="ion-text-wrap addon-messages-conversation-item"
 | 
			
		||||
                            *ngIf="contact.profileimageurl || contact.profileimageurlsmall"
 | 
			
		||||
                            [title]="contact.fullname" (click)="gotoDiscussion(contact.id)" detail
 | 
			
		||||
                            [class.core-selected-item]="contact.id == discussionUserId">
 | 
			
		||||
                            [attr.aria-current]="contact.id == discussionUserId ? 'page' :  'false'">
 | 
			
		||||
                            <core-user-avatar [user]="contact" slot="start" [checkOnline]="contact.showonlinestatus"></core-user-avatar>
 | 
			
		||||
                            <ion-label><h2>{{ contact.fullname }}</h2></ion-label>
 | 
			
		||||
                        </ion-item>
 | 
			
		||||
 | 
			
		||||
@ -28,7 +28,7 @@
 | 
			
		||||
                        <ion-list  class="ion-no-margin">
 | 
			
		||||
                            <ion-item class="ion-text-wrap addon-messages-conversation-item"
 | 
			
		||||
                                *ngFor="let contact of confirmedContacts" [title]="contact.fullname" detail
 | 
			
		||||
                                (click)="selectUser(contact.id)" [class.core-selected-item]="contact.id == selectedUserId">
 | 
			
		||||
                                (click)="selectUser(contact.id)" [attr.aria-current]="contact.id == selectedUserId ? 'page' :  'false'">
 | 
			
		||||
                                <core-user-avatar slot="start" [user]="contact"
 | 
			
		||||
                                    [checkOnline]="contact.showonlinestatus" [linkProfile]="false">
 | 
			
		||||
                                </core-user-avatar>
 | 
			
		||||
@ -65,7 +65,7 @@
 | 
			
		||||
                        <ion-list  class="ion-no-margin">
 | 
			
		||||
                            <ion-item class="ion-text-wrap addon-messages-conversation-item" *ngFor="let request of requests"
 | 
			
		||||
                                [title]="request.fullname" (click)="selectUser(request.id)"
 | 
			
		||||
                                [class.core-selected-item]="request.id == selectedUserId" detail>
 | 
			
		||||
                                [attr.aria-current]="request.id == selectedUserId ? 'page' :  'false'" detail>
 | 
			
		||||
                                <core-user-avatar slot="start" [user]="request" [linkProfile]="false"></core-user-avatar>
 | 
			
		||||
                                <ion-label>
 | 
			
		||||
                                    <core-format-text [text]="request.fullname" contextLevel="system" [contextInstanceId]="0">
 | 
			
		||||
 | 
			
		||||
@ -40,7 +40,7 @@
 | 
			
		||||
                    </ion-item-divider>
 | 
			
		||||
                    <ion-item class="ion-text-wrap addon-message-discussion" *ngFor="let result of search.results" [title]="result.fullname"
 | 
			
		||||
                        (click)="gotoDiscussion(result.userid, result.messageid)"
 | 
			
		||||
                        [class.core-selected-item]="result.userid == discussionUserId">
 | 
			
		||||
                        [attr.aria-current]="result.userid == discussionUserId ? 'page' :  'false'">
 | 
			
		||||
                        <core-user-avatar [user]="result" slot="start" [checkOnline]="result.showonlinestatus"></core-user-avatar>
 | 
			
		||||
                        <ion-label>
 | 
			
		||||
                                <h2>{{ result.fullname }}</h2>
 | 
			
		||||
@ -52,7 +52,7 @@
 | 
			
		||||
                <ng-container *ngIf="!search.showResults">
 | 
			
		||||
                    <ion-item class="ion-text-wrap addon-message-discussion" *ngFor="let discussion of discussions"
 | 
			
		||||
                        [title]="discussion.fullname" (click)="gotoDiscussion(discussion.message!.user)"
 | 
			
		||||
                        [class.core-selected-item]="discussion.message!.user == discussionUserId">
 | 
			
		||||
                        [attr.aria-current]="discussion.message!.user == discussionUserId ? 'page' :  'false'">
 | 
			
		||||
                        <core-user-avatar [user]="discussion" slot="start" checkOnline="false"></core-user-avatar>
 | 
			
		||||
                        <ion-label>
 | 
			
		||||
                            <h2>{{ discussion.fullname }}</h2>
 | 
			
		||||
 | 
			
		||||
@ -108,8 +108,8 @@
 | 
			
		||||
<ng-template #conversationsTemplate let-conversations="conversations">
 | 
			
		||||
    <ion-item class="ion-text-wrap addon-message-discussion" *ngFor="let conversation of conversations" [title]="conversation.name"
 | 
			
		||||
        (click)="gotoConversation(conversation.id, conversation.userid)"
 | 
			
		||||
        [class.core-selected-item]="(conversation.id && conversation.id == selectedConversationId) ||
 | 
			
		||||
            (conversation.userid && conversation.userid == selectedUserId)"
 | 
			
		||||
        [attr.aria-current]="((conversation.id && conversation.id == selectedConversationId) ||
 | 
			
		||||
            (conversation.userid && conversation.userid == selectedUserId)) ? 'page': 'false'"
 | 
			
		||||
        id="addon-message-conversation-{{ conversation.id ? conversation.id : 'user-' + conversation.userid }}">
 | 
			
		||||
        <!-- Group conversation image. -->
 | 
			
		||||
        <ion-avatar slot="start" *ngIf="conversation.type == typeGroup">
 | 
			
		||||
 | 
			
		||||
@ -43,7 +43,7 @@
 | 
			
		||||
 | 
			
		||||
        <!-- List of results -->
 | 
			
		||||
        <ion-item class="addon-message-discussion ion-text-wrap" *ngFor="let result of item.results" [title]="result.fullname"
 | 
			
		||||
            (click)="openConversation(result)" [class.core-selected-item]="result == selectedResult" detail>
 | 
			
		||||
            (click)="openConversation(result)" [attr.aria-current]="result == selectedResult ? 'page' :  'false'" detail>
 | 
			
		||||
            <core-user-avatar slot="start" [user]="result" [checkOnline]="true" [linkProfile]="false"></core-user-avatar>
 | 
			
		||||
            <ion-label>
 | 
			
		||||
                <h2>
 | 
			
		||||
 | 
			
		||||
@ -40,7 +40,7 @@
 | 
			
		||||
                <!-- List of submissions. -->
 | 
			
		||||
                <ng-container *ngFor="let submission of submissions.items">
 | 
			
		||||
                    <ion-item class="ion-text-wrap" (click)="submissions.select(submission)"
 | 
			
		||||
                        [class.core-selected-item]="submissions.isSelected(submission)">
 | 
			
		||||
                        [attr.aria-current]="submissions.getItemAriaCurrent(submission)">
 | 
			
		||||
                        <core-user-avatar [user]="submission" [linkProfile]="false" slot="start"></core-user-avatar>
 | 
			
		||||
                        <ion-label>
 | 
			
		||||
                            <h2 *ngIf="submission.userfullname">{{submission.userfullname}}</h2>
 | 
			
		||||
 | 
			
		||||
@ -12,7 +12,7 @@
 | 
			
		||||
    <nav>
 | 
			
		||||
        <ion-list>
 | 
			
		||||
            <ion-item class="ion-text-wrap" *ngFor="let chapter of chapters" (click)="loadChapter(chapter.id)"
 | 
			
		||||
                [class.core-selected-item]="selected == chapter.id"
 | 
			
		||||
                [attr.aria-current]="selected == chapter.id ? 'page' :  'false'"
 | 
			
		||||
                [class.item-dimmed]="chapter.hidden">
 | 
			
		||||
                <ion-label>
 | 
			
		||||
                    <p [class.ion-padding-left]="addPadding && chapter.level == 1 ? true : null">
 | 
			
		||||
 | 
			
		||||
@ -31,7 +31,7 @@
 | 
			
		||||
            </ion-item>
 | 
			
		||||
 | 
			
		||||
            <ion-card *ngFor="let session of sessions.items" (click)="sessions.select(session)"
 | 
			
		||||
                [class.core-selected-item]="sessions.isSelected(session)"
 | 
			
		||||
                [attr.aria-current]="sessions.getItemAriaCurrent(session)"
 | 
			
		||||
                [class.addon-mod-chat-session-show-more]="session.sessionusers.length < session.allsessionusers.length">
 | 
			
		||||
 | 
			
		||||
                <ion-item class="ion-text-wrap">
 | 
			
		||||
 | 
			
		||||
@ -33,7 +33,7 @@
 | 
			
		||||
                        </ion-label>
 | 
			
		||||
                    </ion-item-divider>
 | 
			
		||||
                    <ion-item *ngFor="let attempt of responses.responses.attempts" class="ion-text-wrap" tappable detail="true"
 | 
			
		||||
                        (click)="responses.select(attempt)" [class.core-selected-item]="responses.isSelected(attempt)">
 | 
			
		||||
                        (click)="responses.select(attempt)" [attr.aria-current]="responses.getItemAriaCurrent(attempt)">
 | 
			
		||||
                        <core-user-avatar [user]="attempt" slot="start"></core-user-avatar>
 | 
			
		||||
                        <ion-label>
 | 
			
		||||
                            <h2>{{ attempt.fullname }}</h2>
 | 
			
		||||
@ -58,7 +58,7 @@
 | 
			
		||||
                        </ion-label>
 | 
			
		||||
                    </ion-item-divider>
 | 
			
		||||
                    <ion-item *ngFor="let attempt of responses.anonResponses.attempts" class="ion-text-wrap" tappable detail="true"
 | 
			
		||||
                        (click)="responses.select(attempt)" [class.core-selected-item]="responses.isSelected(attempt)">
 | 
			
		||||
                        (click)="responses.select(attempt)" [attr.aria-current]="responses.getItemAriaCurrent(attempt)">
 | 
			
		||||
                        <ion-label>
 | 
			
		||||
                            <h2>{{ 'addon.mod_feedback.response_nr' |translate }}: {{attempt.number}}</h2>
 | 
			
		||||
                        </ion-label>
 | 
			
		||||
 | 
			
		||||
@ -80,7 +80,7 @@
 | 
			
		||||
 | 
			
		||||
            <ion-item *ngFor="let discussion of discussions.items"
 | 
			
		||||
                class="addon-mod-forum-discussion" detail="true"
 | 
			
		||||
                [lines]="discussion.groupname && 'none'" [class.core-selected-item]="discussions.isSelected(discussion)"
 | 
			
		||||
                [lines]="discussion.groupname && 'none'" [attr.aria-current]="discussions.getItemAriaCurrent(discussion)"
 | 
			
		||||
                (click)="discussions.select(discussion)">
 | 
			
		||||
                <ion-label>
 | 
			
		||||
                    <div class="addon-mod-forum-discussion-title">
 | 
			
		||||
 | 
			
		||||
@ -11,9 +11,9 @@
 | 
			
		||||
<ion-content>
 | 
			
		||||
    <ion-list id="addon-mod-forum-sort-selector" role="menu" aria-labelledby="addon-mod-forum-sort-order-button">
 | 
			
		||||
        <ng-container *ngFor="let sortOrder of sortOrders">
 | 
			
		||||
            <ion-item class="ion-text-wrap" detail="false" role="combobox" button aria-haspopup="dialog"
 | 
			
		||||
                [attr.aria-current]="selected == sortOrder.value ? 'page' :  'false'"
 | 
			
		||||
                [attr.aria-label]="sortOrder.label | translate" (click)="selectSortOrder(sortOrder)">
 | 
			
		||||
            <ion-item class="ion-text-wrap" detail="false" role="combobox"
 | 
			
		||||
                [attr.aria-current]="selected == sortOrder.value ? 'page' :  'false'" [attr.aria-label]="sortOrder.label | translate"
 | 
			
		||||
                (click)="selectSortOrder(sortOrder)" button aria-haspopup="dialog">
 | 
			
		||||
                <ion-label>
 | 
			
		||||
                    <h2>{{ sortOrder.label | translate }}</h2>
 | 
			
		||||
                </ion-label>
 | 
			
		||||
 | 
			
		||||
@ -67,7 +67,7 @@
 | 
			
		||||
                <ion-label>{{ 'addon.mod_glossary.entriestobesynced' | translate }}</ion-label>
 | 
			
		||||
            </ion-item-divider>
 | 
			
		||||
            <ion-item *ngFor="let entry of entries.offlineEntries" (click)="entries.select(entry)" detail="false"
 | 
			
		||||
                [class.core-selected-item]="entries.isSelected(entry)">
 | 
			
		||||
                [attr.aria-current]="entries.getItemAriaCurrent(entry)">
 | 
			
		||||
                <ion-label>
 | 
			
		||||
                    <core-format-text [text]="entry.concept" contextLevel="module" [contextInstanceId]="glossary!.coursemodule"
 | 
			
		||||
                        [courseId]="courseId">
 | 
			
		||||
@ -82,7 +82,8 @@
 | 
			
		||||
                    {{ getDivider!(entry) }}
 | 
			
		||||
                </ion-item-divider>
 | 
			
		||||
 | 
			
		||||
                <ion-item (click)="entries.select(entry)" [class.core-selected-item]="entries.isSelected(entry)" detail="false">
 | 
			
		||||
                <ion-item button (click)="entries.select(entry)" [attr.aria-current]="entries.getItemAriaCurrent(entry)"
 | 
			
		||||
                    detail="false">
 | 
			
		||||
                    <ion-label>
 | 
			
		||||
                        <core-format-text [text]="entry.concept" contextLevel="module" [contextInstanceId]="glossary!.coursemodule"
 | 
			
		||||
                            [courseId]="courseId">
 | 
			
		||||
 | 
			
		||||
@ -12,7 +12,7 @@
 | 
			
		||||
    <nav>
 | 
			
		||||
        <ion-list>
 | 
			
		||||
            <ion-item *ngFor="let item of items" (click)="loadItem(item.href)"
 | 
			
		||||
                [class.core-selected-item]="selected == item.href">
 | 
			
		||||
                [attr.aria-current]="selected == item.href ? 'page' :  'false'">
 | 
			
		||||
                <ion-label [class.core-bold]="!item.href">
 | 
			
		||||
                    <span class="ion-padding-left" *ngFor="let i of getNumberForPadding(item.level)"></span>{{item.title}}
 | 
			
		||||
                </ion-label>
 | 
			
		||||
 | 
			
		||||
@ -33,7 +33,7 @@
 | 
			
		||||
                <div *ngIf="!pageInstance.loadingMenu">
 | 
			
		||||
                    <ng-container *ngFor="let page of pageInstance.lessonPages">
 | 
			
		||||
                        <ion-item class="ion-text-wrap" *ngIf="page.display && page.displayinmenublock" (click)="loadPage(page.id)"
 | 
			
		||||
                            [ngClass]='{"core-selected-item": !pageInstance.eolData && pageInstance.currentPage == page.id}'
 | 
			
		||||
                            [attr.aria-current]="!pageInstance.eolData && pageInstance.currentPage == page.id ? 'page' : 'false'"
 | 
			
		||||
                            button detail="true">
 | 
			
		||||
                            <ion-label>
 | 
			
		||||
                                <core-format-text [text]="page.title" contextLevel="module" [courseId]="pageInstance.courseId"
 | 
			
		||||
 | 
			
		||||
@ -26,7 +26,7 @@
 | 
			
		||||
            </ion-item>
 | 
			
		||||
 | 
			
		||||
            <ion-item button class="ion-text-wrap {{question.stateClass}}" *ngFor="let question of navigation"
 | 
			
		||||
                [ngClass]='{"core-selected-item": !summaryShown && currentPage == question.page}'
 | 
			
		||||
                [attr.aria-current]="!summaryShown && currentPage == question.page ? 'page' : 'false'"
 | 
			
		||||
                (click)="loadPage(question.page, question.slot)" detail="true">
 | 
			
		||||
 | 
			
		||||
                <ion-label>
 | 
			
		||||
 | 
			
		||||
@ -31,7 +31,7 @@
 | 
			
		||||
            <ng-container *ngFor="let sco of toc">
 | 
			
		||||
                <ion-item *ngIf="sco.isvisible" class="ion-text-wrap" [detail]="sco.prereq && sco.launch"
 | 
			
		||||
                    [ngClass]="'core-padding-' + sco.level + ' addon-mod_scorm-type-' + sco.scormtype"
 | 
			
		||||
                    [class.core-selected-item]="selected == sco.id" (click)="loadSco(sco)"
 | 
			
		||||
                    [attr.aria-current]="selected == sco.id ? 'page' :  'false'" (click)="loadSco(sco)"
 | 
			
		||||
                    [disabled]="!sco.prereq || !sco.launch ? true : null" tappable>
 | 
			
		||||
                    <ion-icon *ngIf="sco.icon" [name]="sco.icon.icon" [attr.aria-label]="sco.icon.description" slot="start">
 | 
			
		||||
                    </ion-icon>
 | 
			
		||||
 | 
			
		||||
@ -21,7 +21,7 @@
 | 
			
		||||
                    <ion-label>{{ letter.label }}</ion-label>
 | 
			
		||||
                </ion-item-divider>
 | 
			
		||||
                <ion-item class="ion-text-wrap" *ngFor="let page of letter.pages" (click)="goToPage(page)"
 | 
			
		||||
                    [class.core-selected-item]="selectedTitle == page.title" tappable>
 | 
			
		||||
                    [attr.aria-current]="selectedTitle == page.title ? 'page' :  'false'" tappable>
 | 
			
		||||
                    <ion-icon name="fas-home" slot="start" *ngIf="page.firstpage" aria-hidden="true"></ion-icon>
 | 
			
		||||
                    <ion-label>
 | 
			
		||||
                        <core-format-text [text]="page.title" contextLevel="module" [contextInstanceId]="moduleId"
 | 
			
		||||
 | 
			
		||||
@ -5,7 +5,7 @@
 | 
			
		||||
        </ion-item-divider>
 | 
			
		||||
        <ion-item class="ion-text-wrap" *ngFor="let subwiki of group.subwikis" (click)="openSubwiki(subwiki)"
 | 
			
		||||
            [attr.disabled]="!subwiki.canedit && subwiki.id <= 0 ? true : null" tappable
 | 
			
		||||
            [class.core-selected-item]="isSubwikiSelected(subwiki)" detail="false">
 | 
			
		||||
            [attr.aria-current]="isSubwikiSelected(subwiki) ? 'page' :  'false'" detail="false">
 | 
			
		||||
            <ion-label>{{ subwiki.name }}</ion-label>
 | 
			
		||||
            <ion-icon *ngIf="isSubwikiSelected(subwiki)" name="fas-check" slot="end" aria-hidden="true"></ion-icon>
 | 
			
		||||
        </ion-item>
 | 
			
		||||
 | 
			
		||||
@ -14,7 +14,7 @@
 | 
			
		||||
<ion-content>
 | 
			
		||||
    <ion-list>
 | 
			
		||||
        <ng-container *ngFor="let phase of phases">
 | 
			
		||||
            <ion-item-divider [class.core-selected-item]="workshopPhase == phase.code">
 | 
			
		||||
            <ion-item-divider [attr.aria-current]="workshopPhase == phase.code ? 'page' :  'false'">
 | 
			
		||||
                <ion-label>
 | 
			
		||||
                    <h2>{{ phase.title }}</h2>
 | 
			
		||||
                    <p class="ion-text-wrap" *ngIf="workshopPhase == phase.code">
 | 
			
		||||
 | 
			
		||||
@ -121,6 +121,16 @@ export abstract class CorePageItemsListManager<Item> {
 | 
			
		||||
        return this.selectedItem === item;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Return the current aria value.
 | 
			
		||||
     *
 | 
			
		||||
     * @param item Item.
 | 
			
		||||
     * @return Will return the current value of the item if selected, false otherwise.
 | 
			
		||||
     */
 | 
			
		||||
    getItemAriaCurrent(item: Item): string {
 | 
			
		||||
        return this.isSelected(item) ? 'page' : 'false';
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Select an item.
 | 
			
		||||
     *
 | 
			
		||||
 | 
			
		||||
@ -12,7 +12,7 @@
 | 
			
		||||
    <ion-list id="core-course-section-selector">
 | 
			
		||||
        <ng-container *ngFor="let section of sections">
 | 
			
		||||
            <ion-item *ngIf="!section.hiddenbynumsections && section.id != stealthModulesSectionId" class="ion-text-wrap"
 | 
			
		||||
                (click)="selectSection(section)" [class.core-selected-item]="selected?.id == section.id"
 | 
			
		||||
                (click)="selectSection(section)" [attr.aria-current]="selected?.id == section.id ? 'page' :  'false'"
 | 
			
		||||
                [class.item-dimmed]="section.visible === 0 || section.uservisible === false" detail="false"
 | 
			
		||||
                [attr.aria-hidden]="section.uservisible === false" button>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -45,7 +45,7 @@
 | 
			
		||||
                                <th
 | 
			
		||||
                                    class="core-grades-table-gradeitem ion-text-start"
 | 
			
		||||
                                    [class.column-itemname]="row.itemtype == 'category'"
 | 
			
		||||
                                    [class.core-selected-item]="grades.isSelected(row)"
 | 
			
		||||
                                    [attr.aria-current]="grades.getItemAriaCurrent(row)"
 | 
			
		||||
                                    [attr.colspan]="row.colspan"
 | 
			
		||||
                                >
 | 
			
		||||
                                    <ion-icon *ngIf="row.icon" name="{{row.icon}}" slot="start" [attr.aria-label]="row.iconAlt">
 | 
			
		||||
 | 
			
		||||
@ -90,7 +90,7 @@
 | 
			
		||||
 | 
			
		||||
    .odd {
 | 
			
		||||
 | 
			
		||||
        td, th, th.core-selected-item {
 | 
			
		||||
        td, th, th[aria-current="page"] {
 | 
			
		||||
            background-color: var(--gray-lighter);
 | 
			
		||||
 | 
			
		||||
            // @include darkmode() {
 | 
			
		||||
@ -102,7 +102,7 @@
 | 
			
		||||
 | 
			
		||||
    .even {
 | 
			
		||||
 | 
			
		||||
        td, th, th.core-selected-item {
 | 
			
		||||
        td, th, th[aria-current="page"] {
 | 
			
		||||
            background-color: var(--white);
 | 
			
		||||
 | 
			
		||||
            // @include darkmode() {
 | 
			
		||||
 | 
			
		||||
@ -22,7 +22,7 @@
 | 
			
		||||
                <ion-item
 | 
			
		||||
                    *ngFor="let course of courses.items"
 | 
			
		||||
                    [title]="course.courseFullName"
 | 
			
		||||
                    [class.core-selected-item]="courses.isSelected(course)"
 | 
			
		||||
                    [attr.aria-current]="courses.getItemAriaCurrent(course)"
 | 
			
		||||
                    class="ion-text-wrap"
 | 
			
		||||
                    button
 | 
			
		||||
                    detail
 | 
			
		||||
 | 
			
		||||
@ -10,7 +10,7 @@
 | 
			
		||||
<ion-content>
 | 
			
		||||
    <core-split-view>
 | 
			
		||||
        <ion-list>
 | 
			
		||||
            <ion-item *ngFor="let section of sections.items" [class.core-selected-item]="sections.isSelected(section)" button
 | 
			
		||||
            <ion-item *ngFor="let section of sections.items" [attr.aria-current]="sections.getItemAriaCurrent(section)" button
 | 
			
		||||
                detail="true" (click)="sections.select(section)">
 | 
			
		||||
                <ion-icon [name]="section.icon" slot="start" aria-hidden="true"></ion-icon>
 | 
			
		||||
                <ion-label>{{ section.name | translate }}</ion-label>
 | 
			
		||||
 | 
			
		||||
@ -29,7 +29,7 @@
 | 
			
		||||
 | 
			
		||||
                <ion-item *ngFor="let handler of handlers.items" [ngClass]="['core-settings-handler', handler.class]"
 | 
			
		||||
                    [title]="handler.title | translate" detail="true" (click)="handlers.select(handler)" button
 | 
			
		||||
                    [class.core-selected-item]="handlers.isSelected(handler)">
 | 
			
		||||
                    [attr.aria-current]="handlers.getItemAriaCurrent(handler)">
 | 
			
		||||
                    <ion-icon [name]="handler.icon" slot="start" *ngIf="handler.icon" aria-hidden="true">
 | 
			
		||||
                    </ion-icon>
 | 
			
		||||
                    <ion-label>
 | 
			
		||||
 | 
			
		||||
@ -18,7 +18,7 @@
 | 
			
		||||
        <ion-refresher-content pullingText="{{ 'core.pulltorefresh' | translate }}"></ion-refresher-content>
 | 
			
		||||
    </ion-refresher>
 | 
			
		||||
    <core-loading [hideUntil]="loaded">
 | 
			
		||||
        <ion-item *ngFor="let site of sites" [class.core-selected-item]="site.id == currentSiteId">
 | 
			
		||||
        <ion-item *ngFor="let site of sites" [attr.aria-current]="site.id == currentSiteId ? 'page' :  'false'">
 | 
			
		||||
            <ion-label class="ion-text-wrap">
 | 
			
		||||
                <h2>
 | 
			
		||||
                    <core-format-text [text]="site.siteName" clean="true" [siteId]="site.id"></core-format-text>
 | 
			
		||||
 | 
			
		||||
@ -30,7 +30,7 @@
 | 
			
		||||
                <h2>{{ 'core.settings.sites' | translate }}</h2>
 | 
			
		||||
            </ion-label>
 | 
			
		||||
        </ion-item-divider>
 | 
			
		||||
        <ion-item *ngFor="let site of sites" [class.core-selected-item]="site.id == currentSiteId" class="ion-text-wrap">
 | 
			
		||||
        <ion-item *ngFor="let site of sites" [attr.aria-current]="site.id == currentSiteId ? 'page' :  'false'" class="ion-text-wrap">
 | 
			
		||||
            <ion-label>
 | 
			
		||||
                <h2>
 | 
			
		||||
                    <core-format-text [text]="site.siteName" clean="true" [siteId]="site.id"></core-format-text>
 | 
			
		||||
 | 
			
		||||
@ -19,7 +19,7 @@
 | 
			
		||||
                    <ion-label class="ion-text-wrap">{{ 'core.tag.warningareasnotsupported' | translate }}</ion-label>
 | 
			
		||||
                </ion-item>
 | 
			
		||||
                <ion-item class="ion-text-wrap" *ngFor="let area of areas" [title]="area.nameKey | translate"
 | 
			
		||||
                    (click)="openArea(area)" [class.core-selected-item]="area!.id == selectedAreaId">
 | 
			
		||||
                    (click)="openArea(area)" [attr.aria-current]="area!.id == selectedAreaId ? 'page' :  'false'">
 | 
			
		||||
                    <ion-label>
 | 
			
		||||
                        <h2>{{ area!.nameKey | translate }}</h2>
 | 
			
		||||
                    </ion-label>
 | 
			
		||||
 | 
			
		||||
@ -28,7 +28,7 @@
 | 
			
		||||
 | 
			
		||||
            <ion-list *ngIf="!participants.empty">
 | 
			
		||||
                <ion-item *ngFor="let participant of participants.items"
 | 
			
		||||
                    class="ion-text-wrap" [class.core-selected-item]="participants.isSelected(participant)"
 | 
			
		||||
                    class="ion-text-wrap" [attr.aria-current]="participants.getItemAriaCurrent(participant)"
 | 
			
		||||
                    [title]="participant.fullname" (click)="participants.select(participant)">
 | 
			
		||||
 | 
			
		||||
                    <core-user-avatar [user]="participant" [linkProfile]="false" [checkOnline]="true" slot="start">
 | 
			
		||||
 | 
			
		||||
@ -215,14 +215,11 @@ ion-toolbar {
 | 
			
		||||
    font-size: 14px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.core-selected-item {
 | 
			
		||||
    border-inline-start: var(--selected-item-border-width) solid var(--selected-item-color);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Item styles
 | 
			
		||||
.item.core-selected-item {
 | 
			
		||||
[aria-current="page"] {
 | 
			
		||||
    // TODO: Add safe area to border and RTL
 | 
			
		||||
    --ion-safe-area-left: calc(-1 * var(--selected-item-border-width));
 | 
			
		||||
    border-inline-start: var(--selected-item-border-width) solid var(--selected-item-color);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.item.item-file {
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user