MOBILE-3814 styles: Ion item without lines by default
parent
e403d2c3ba
commit
7690270766
|
@ -1,4 +1,4 @@
|
|||
<ion-item lines="none" *ngIf="course">
|
||||
<ion-item *ngIf="course">
|
||||
<ion-label class="ion-text-wrap">
|
||||
<h3>
|
||||
<span class="sr-only">{{ 'core.courses.aria:coursename' | translate }}</span>
|
||||
|
@ -7,7 +7,7 @@
|
|||
</ion-label>
|
||||
</ion-item>
|
||||
<ion-item-group *ngFor="let dayEvents of filteredEvents">
|
||||
<ion-item lines="none">
|
||||
<ion-item>
|
||||
<ion-label>
|
||||
<h4 [class.core-bold]="!course">{{ dayEvents.dayTimestamp * 1000 | coreFormatDate:"strftimedaydate" }}</h4>
|
||||
</ion-label>
|
||||
|
@ -73,7 +73,7 @@
|
|||
<ion-spinner *ngIf="loadingMore" [attr.aria-label]="'core.loading' | translate"></ion-spinner>
|
||||
</div>
|
||||
|
||||
<ion-item lines="none" *ngIf="empty && course">
|
||||
<ion-item *ngIf="empty && course">
|
||||
<ion-label class="ion-text-wrap">
|
||||
<p>{{'addon.block_timeline.noevents' | translate}}</p>
|
||||
</ion-label>
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
</ion-item>
|
||||
|
||||
<!-- Custom value. -->
|
||||
<ion-item lines="none" class="ion-text-wrap">
|
||||
<ion-item class="ion-text-wrap">
|
||||
<ion-label>
|
||||
<p>{{ 'core.custom' | translate }}</p>
|
||||
</ion-label>
|
||||
|
|
|
@ -147,7 +147,7 @@
|
|||
</ion-label>
|
||||
<ion-radio slot="end" [value]="0"></ion-radio>
|
||||
</ion-item>
|
||||
<ion-item lines="none">
|
||||
<ion-item>
|
||||
<ion-label>
|
||||
<p>{{ 'addon.calendar.durationuntil' | translate }}</p>
|
||||
</ion-label>
|
||||
|
@ -159,7 +159,7 @@
|
|||
[placeholder]="'addon.calendar.durationuntil' | translate" [displayFormat]="dateFormat" display-timezone="utc">
|
||||
</ion-datetime>
|
||||
</ion-item>
|
||||
<ion-item lines="none">
|
||||
<ion-item>
|
||||
<ion-label>
|
||||
<p>{{ 'addon.calendar.durationminutes' | translate }}</p>
|
||||
</ion-label>
|
||||
|
@ -175,7 +175,7 @@
|
|||
|
||||
<!-- Repeat (for new events). -->
|
||||
<ng-container *ngIf="!eventId || eventId < 0">
|
||||
<ion-item class="ion-text-wrap divider" lines="none">
|
||||
<ion-item class="ion-text-wrap divider">
|
||||
<ion-label>
|
||||
<p class="item-heading">{{ 'addon.calendar.repeatevent' | translate }}</p>
|
||||
</ion-label>
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
</ion-card>
|
||||
<ion-card *ngIf="plan">
|
||||
<ion-list>
|
||||
<ion-item class="ion-text-wrap" *ngIf="plan.plan.description" lines="none">
|
||||
<ion-item class="ion-text-wrap" *ngIf="plan.plan.description">
|
||||
<ion-label>
|
||||
<p>
|
||||
<core-format-text [text]="plan.plan.description" contextLevel="user" [contextInstanceId]="plan.plan.userid">
|
||||
|
@ -31,25 +31,25 @@
|
|||
</p>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
<ion-item class="ion-text-wrap" lines="none">
|
||||
<ion-item class="ion-text-wrap">
|
||||
<ion-label>
|
||||
<p class="item-heading">{{ 'addon.competency.status' | translate }}</p>
|
||||
<p>{{ plan.plan.statusname }}</p>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
<ion-item class="ion-text-wrap" *ngIf="plan.plan.duedate > 0" lines="none">
|
||||
<ion-item class="ion-text-wrap" *ngIf="plan.plan.duedate > 0">
|
||||
<ion-label>
|
||||
<p class="item-heading">{{ 'addon.competency.duedate' | translate }}</p>
|
||||
<p>{{ plan.plan.duedate * 1000 | coreFormatDate }}</p>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
<ion-item class="ion-text-wrap" *ngIf="plan.plan.template" lines="none">
|
||||
<ion-item class="ion-text-wrap" *ngIf="plan.plan.template">
|
||||
<ion-label>
|
||||
<p class="item-heading">{{ 'addon.competency.template' | translate }}</p>
|
||||
<p>{{ plan.plan.template.shortname }}</p>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
<ion-item class="ion-text-wrap" lines="none">
|
||||
<ion-item class="ion-text-wrap">
|
||||
<ion-label id="addon-competency-plan-{{plan.plan.id}}-progress">
|
||||
<p class="item-heading">{{ 'addon.competency.progress' | translate }}</p>
|
||||
<p>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<ion-item class="ion-text-wrap" *ngIf="files && files.length && !edit">
|
||||
<ion-label>
|
||||
<h2>{{ plugin.name }}</h2>
|
||||
<div lines="none">
|
||||
<div>
|
||||
<core-files [files]="files" [component]="component" [componentId]="assign.cmid" [alwaysDownload]="true"></core-files>
|
||||
</div>
|
||||
</ion-label>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
</span>
|
||||
|
||||
<ng-container *ngIf="displayMode">
|
||||
<div lines="none">
|
||||
<div>
|
||||
<core-files [files]="files" [component]="component" [componentId]="componentId" [alwaysDownload]="true"></core-files>
|
||||
</div>
|
||||
</ng-container>
|
||||
|
|
|
@ -40,7 +40,7 @@
|
|||
<!-- Activity info. -->
|
||||
<core-course-module-info [module]="module" [description]="forum && forum.type != 'single' && description" [component]="component"
|
||||
[componentId]="componentId" [courseId]="courseId" [hasDataToSync]="hasOffline || hasOfflineRatings">
|
||||
<ion-item lines="none" class="ion-text-wrap">
|
||||
<ion-item class="ion-text-wrap">
|
||||
<ion-label>
|
||||
{{descriptionNote}}
|
||||
</ion-label>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<div class="addon-mod_forum-post">
|
||||
<ng-container *ngIf="!formData.isEditing || !showForm">
|
||||
<ion-card-header class="ion-text-wrap ion-no-padding" id="addon-mod_forum-post-{{post.id}}">
|
||||
<ion-item class="ion-text-wrap" [class.highlight]="highlight" lines="none">
|
||||
<ion-item class="ion-text-wrap" [class.highlight]="highlight">
|
||||
<ion-label>
|
||||
<div class="addon-mod-forum-post-title" *ngIf="displaySubject">
|
||||
<h2 class="ion-text-wrap">
|
||||
|
@ -63,13 +63,13 @@
|
|||
<core-format-text [component]="component" [componentId]="componentId" [text]="post.message" contextLevel="module"
|
||||
[contextInstanceId]="forum && forum.cmid" [courseId]="courseId">
|
||||
</core-format-text>
|
||||
<div lines="none" *ngIf="post.attachments && post.attachments.length > 0">
|
||||
<div *ngIf="post.attachments && post.attachments.length > 0">
|
||||
<core-files [files]="post.attachments" [component]="component" [componentId]="componentId" showInline="true">
|
||||
</core-files>
|
||||
</div>
|
||||
</ion-card-content>
|
||||
<div class="addon-mod-forum-post-more-info">
|
||||
<ion-item class="ion-text-wrap" *ngIf="tagsEnabled && post.tags && post.tags.length > 0" lines="none">
|
||||
<ion-item class="ion-text-wrap" *ngIf="tagsEnabled && post.tags && post.tags.length > 0">
|
||||
<div slot="start">{{ 'core.tag.tags' | translate }}:</div>
|
||||
<ion-label>
|
||||
<core-tag-list [tags]="post.tags"></core-tag-list>
|
||||
|
|
|
@ -46,7 +46,7 @@
|
|||
</core-format-text>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
<div *ngIf="entry.attachment" lines="none">
|
||||
<div *ngIf="entry.attachment">
|
||||
<core-file *ngFor="let file of entry.attachments" [file]="file" [component]="component" [componentId]="componentId">
|
||||
</core-file>
|
||||
</div>
|
||||
|
|
|
@ -36,13 +36,13 @@
|
|||
<!-- Attempt summary. -->
|
||||
<ion-card class="addon-mod_h5pactivity-attempt-result-summary">
|
||||
<ion-list>
|
||||
<ion-item class="ion-text-wrap" lines="none">
|
||||
<ion-item class="ion-text-wrap">
|
||||
<ion-label>
|
||||
<h2>{{ 'addon.mod_h5pactivity.startdate' | translate }}</h2>
|
||||
<p>{{ attempt.timecreated | coreFormatDate:'strftimedatetime' }}</p>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
<ion-item class="ion-text-wrap" lines="none">
|
||||
<ion-item class="ion-text-wrap">
|
||||
<ion-label>
|
||||
<h2>{{ 'addon.mod_h5pactivity.completion' | translate }}</h2>
|
||||
<p *ngIf="attempt.completion">
|
||||
|
@ -55,13 +55,13 @@
|
|||
</p>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
<ion-item class="ion-text-wrap" lines="none">
|
||||
<ion-item class="ion-text-wrap">
|
||||
<ion-label>
|
||||
<h2>{{ 'addon.mod_h5pactivity.duration' | translate }}</h2>
|
||||
<p>{{ attempt.durationReadable }}</p>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
<ion-item class="ion-text-wrap" lines="none">
|
||||
<ion-item class="ion-text-wrap">
|
||||
<ion-label>
|
||||
<h2>{{ 'addon.mod_h5pactivity.outcome' | translate }}</h2>
|
||||
<p *ngIf="attempt.success !== null && attempt.success">
|
||||
|
@ -77,7 +77,7 @@
|
|||
</p>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
<ion-item *ngIf="attempt.maxscore" class="ion-text-wrap" lines="none">
|
||||
<ion-item *ngIf="attempt.maxscore" class="ion-text-wrap">
|
||||
<ion-label>
|
||||
<h2>{{ 'addon.mod_h5pactivity.totalscore' | translate }}</h2>
|
||||
<p>{{ 'addon.mod_h5pactivity.score_out_of' | translate:{$a: attempt} }}</p>
|
||||
|
@ -151,7 +151,7 @@
|
|||
</ng-container>
|
||||
|
||||
<!-- Result doesn't support tracking. -->
|
||||
<ion-item class="ion-text-wrap core-warning-item" *ngIf="!result.track" lines="none">
|
||||
<ion-item class="ion-text-wrap core-warning-item" *ngIf="!result.track">
|
||||
<ion-icon slot="start" name="fas-exclamation-triangle" color="warning" aria-hidden="true"></ion-icon>
|
||||
<ion-label>
|
||||
{{ 'addon.mod_h5pactivity.no_compatible_track' | translate:{$a: result.interactiontype} }}
|
||||
|
|
|
@ -69,7 +69,7 @@
|
|||
<ion-list *ngIf="(lesson && !preventReasons.length) || retakeToReview">
|
||||
<ng-container *ngIf="retakeToReview">
|
||||
<!-- A retake was finished in a synchronization, allow reviewing it. -->
|
||||
<ion-item class="ion-text-wrap" lines="none">
|
||||
<ion-item class="ion-text-wrap">
|
||||
<ion-label class="ion-padding-bottom">
|
||||
{{ 'addon.mod_lesson.retakefinishedinsync' | translate }}
|
||||
</ion-label>
|
||||
|
|
|
@ -198,34 +198,34 @@
|
|||
<ion-card-header class="ion-text-wrap" *ngIf="eolData.gradelesson">
|
||||
<ion-card-title>{{ 'addon.mod_lesson.congratulations' | translate }}</ion-card-title>
|
||||
</ion-card-header>
|
||||
<ion-item class="ion-text-wrap" *ngIf="eolData.notenoughtimespent" lines="none">
|
||||
<ion-item class="ion-text-wrap" *ngIf="eolData.notenoughtimespent">
|
||||
<ion-label>{{ eolData.notenoughtimespent.message }}</ion-label>
|
||||
</ion-item>
|
||||
<ion-item class="ion-text-wrap" *ngIf="eolData.numberofpagesviewed" lines="none">
|
||||
<ion-item class="ion-text-wrap" *ngIf="eolData.numberofpagesviewed">
|
||||
<ion-label>{{ eolData.numberofpagesviewed.message }}</ion-label>
|
||||
</ion-item>
|
||||
<ion-item class="ion-text-wrap" *ngIf="eolData.youshouldview" lines="none">
|
||||
<ion-item class="ion-text-wrap" *ngIf="eolData.youshouldview">
|
||||
<ion-label>{{ eolData.youshouldview.message }}</ion-label>
|
||||
</ion-item>
|
||||
<ion-item class="ion-text-wrap" *ngIf="eolData.numberofcorrectanswers" lines="none">
|
||||
<ion-item class="ion-text-wrap" *ngIf="eolData.numberofcorrectanswers">
|
||||
<ion-label>{{ eolData.numberofcorrectanswers.message }}</ion-label>
|
||||
</ion-item>
|
||||
<ion-item class="ion-text-wrap" *ngIf="eolData.displayscorewithessays" lines="none">
|
||||
<ion-item class="ion-text-wrap" *ngIf="eolData.displayscorewithessays">
|
||||
<ion-label [innerHTML]="eolData.displayscorewithessays.message"></ion-label>
|
||||
</ion-item>
|
||||
<ion-item class="ion-text-wrap" *ngIf="!eolData.displayscorewithessays && eolData.displayscorewithoutessays" lines="none">
|
||||
<ion-item class="ion-text-wrap" *ngIf="!eolData.displayscorewithessays && eolData.displayscorewithoutessays">
|
||||
<ion-label>{{ eolData.displayscorewithoutessays.message }}</ion-label>
|
||||
</ion-item>
|
||||
<ion-item class="ion-text-wrap" *ngIf="eolData.yourcurrentgradeisoutof" lines="none">
|
||||
<ion-item class="ion-text-wrap" *ngIf="eolData.yourcurrentgradeisoutof">
|
||||
<ion-label>{{ eolData.yourcurrentgradeisoutof.message }}</ion-label>
|
||||
</ion-item>
|
||||
<ion-item class="ion-text-wrap" *ngIf="eolData.eolstudentoutoftimenoanswers" lines="none">
|
||||
<ion-item class="ion-text-wrap" *ngIf="eolData.eolstudentoutoftimenoanswers">
|
||||
<ion-label>{{ eolData.eolstudentoutoftimenoanswers.message }}</ion-label>
|
||||
</ion-item>
|
||||
<ion-item class="ion-text-wrap" *ngIf="eolData.welldone" lines="none">
|
||||
<ion-item class="ion-text-wrap" *ngIf="eolData.welldone">
|
||||
<ion-label>{{ eolData.welldone.message }}</ion-label>
|
||||
</ion-item>
|
||||
<ion-item class="ion-text-wrap" *ngIf="lesson.progressbar && eolData.progresscompleted" lines="none">
|
||||
<ion-item class="ion-text-wrap" *ngIf="lesson.progressbar && eolData.progresscompleted">
|
||||
<ion-label>
|
||||
<span id="addon-mod_lesson-{{cmId}}-progress-end">
|
||||
{{ 'addon.mod_lesson.progresscompleted' | translate:{$a: eolData.progresscompleted.value} }}
|
||||
|
@ -235,14 +235,14 @@
|
|||
</core-progress-bar>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
<ion-item class="ion-text-wrap" *ngIf="eolData.displayofgrade" lines="none">
|
||||
<ion-item class="ion-text-wrap" *ngIf="eolData.displayofgrade">
|
||||
<ion-label>{{ eolData.displayofgrade.message }}</ion-label>
|
||||
</ion-item>
|
||||
<ion-button *ngIf="eolData.reviewlesson" expand="block" class="ion-text-wrap ion-margin button-no-uppercase"
|
||||
(click)="reviewLesson(reviewPageId!)">
|
||||
{{ 'addon.mod_lesson.reviewlesson' | translate }}
|
||||
</ion-button>
|
||||
<ion-item class="ion-text-wrap" *ngIf="eolData.modattemptsnoteacher" lines="none">
|
||||
<ion-item class="ion-text-wrap" *ngIf="eolData.modattemptsnoteacher">
|
||||
<ion-label>{{ eolData.modattemptsnoteacher.message }}</ion-label>
|
||||
</ion-item>
|
||||
<!-- If activity link was successfully formatted, render the button. -->
|
||||
|
@ -252,7 +252,7 @@
|
|||
[courseId]="courseId">
|
||||
</core-format-text>
|
||||
</ion-button>
|
||||
<ion-item class="ion-text-wrap" *ngIf="activityLink && !activityLink.formatted" lines="none">
|
||||
<ion-item class="ion-text-wrap" *ngIf="activityLink && !activityLink.formatted">
|
||||
<!-- Activity link wasn't formatted, render the original link. -->
|
||||
<ion-label>
|
||||
<core-format-text [text]="activityLink.label" contextLevel="module" [contextInstanceId]="lesson?.coursemodule"
|
||||
|
|
|
@ -83,7 +83,7 @@
|
|||
<ion-card-header class="ion-text-wrap">
|
||||
<ion-card-title>{{page.qtype}}: {{page.title}}</ion-card-title>
|
||||
</ion-card-header>
|
||||
<ion-item class="ion-text-wrap" lines="none">
|
||||
<ion-item class="ion-text-wrap">
|
||||
<ion-label>
|
||||
<h3 class="item-heading">{{ 'addon.mod_lesson.question' | translate }}</h3>
|
||||
<p>
|
||||
|
@ -94,13 +94,12 @@
|
|||
</p>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
<ion-item class="ion-text-wrap" lines="none">
|
||||
<ion-item class="ion-text-wrap">
|
||||
<ion-label>
|
||||
<h3 class="item-heading">{{ 'addon.mod_lesson.answer' | translate }}</h3>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
<ion-item class="ion-text-wrap" lines="none"
|
||||
*ngIf="!page.answerdata || !page.answerdata.answers || !page.answerdata.answers.length">
|
||||
<ion-item class="ion-text-wrap" *ngIf="!page.answerdata || !page.answerdata.answers || !page.answerdata.answers.length">
|
||||
<ion-label>
|
||||
<p>{{ 'addon.mod_lesson.didnotanswerquestion' | translate }}</p>
|
||||
</ion-label>
|
||||
|
@ -108,7 +107,7 @@
|
|||
<div *ngIf="page.answerdata && page.answerdata.answers && page.answerdata.answers.length"
|
||||
class="addon-mod_lesson-answer">
|
||||
<ng-container *ngFor="let answer of page.answerdata.answers">
|
||||
<ion-item lines="none" *ngIf="page.isContent">
|
||||
<ion-item *ngIf="page.isContent">
|
||||
<ion-label class="ion-text-wrap">
|
||||
<ion-grid class="ion-no-padding">
|
||||
<!-- Content page, display a button and the content. -->
|
||||
|
@ -151,7 +150,7 @@
|
|||
</ion-item>
|
||||
|
||||
<!-- Short answer or numeric. -->
|
||||
<ion-item class="ion-text-wrap" *ngIf="answer[0].isText" lines="none">
|
||||
<ion-item class="ion-text-wrap" *ngIf="answer[0].isText">
|
||||
<ion-label>
|
||||
<p>{{ answer[0].value }}</p>
|
||||
<ion-badge *ngIf="answer[1]" color="dark">
|
||||
|
@ -164,7 +163,7 @@
|
|||
</ion-item>
|
||||
|
||||
<!-- Matching. -->
|
||||
<ion-item lines="none" *ngIf="answer[0].isSelect">
|
||||
<ion-item *ngIf="answer[0].isSelect">
|
||||
<ion-label class="ion-text-wrap">
|
||||
<ion-grid class="ion-no-padding">
|
||||
<ion-row>
|
||||
|
@ -191,8 +190,7 @@
|
|||
</ion-item>
|
||||
|
||||
<!-- Essay or couldn't determine. -->
|
||||
<ion-item class="ion-text-wrap" lines="none"
|
||||
*ngIf="!answer[0].isCheckbox && !answer[0].isText && !answer[0].isSelect">
|
||||
<ion-item class="ion-text-wrap" *ngIf="!answer[0].isCheckbox && !answer[0].isText && !answer[0].isSelect">
|
||||
<ion-label>
|
||||
<p>
|
||||
<core-format-text [component]="component" [componentId]="lesson?.coursemodule"
|
||||
|
@ -210,7 +208,7 @@
|
|||
</ion-item>
|
||||
</ng-container>
|
||||
|
||||
<ion-item class="ion-text-wrap" *ngIf="!page.isContent && !page.isQuestion" lines="none">
|
||||
<ion-item class="ion-text-wrap" *ngIf="!page.isContent && !page.isQuestion">
|
||||
<!-- Another page (end of branch, ...). -->
|
||||
<ion-label>
|
||||
<p>
|
||||
|
@ -227,7 +225,7 @@
|
|||
</ion-item>
|
||||
</ng-container>
|
||||
|
||||
<ion-item class="ion-text-wrap" *ngIf="page.answerdata.response" lines="none">
|
||||
<ion-item class="ion-text-wrap" *ngIf="page.answerdata.response">
|
||||
<ion-label>
|
||||
<h3 class="item-heading">{{ 'addon.mod_lesson.response' | translate }}</h3>
|
||||
<p>
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
<ion-refresher-content pullingText="{{ 'core.pulltorefresh' | translate }}"></ion-refresher-content>
|
||||
</ion-refresher>
|
||||
<core-loading [hideUntil]="loaded">
|
||||
<ion-list *ngIf="attempt" lines="none">
|
||||
<ion-list *ngIf="attempt">
|
||||
<ion-item class="ion-text-wrap">
|
||||
<ion-label>
|
||||
<h2>{{ 'addon.mod_quiz.attemptnumber' | translate }}</h2>
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
</ng-container>
|
||||
</ion-card-title>
|
||||
</ion-card-header>
|
||||
<ion-list lines="none">
|
||||
<ion-list>
|
||||
<ion-item class="ion-text-wrap">
|
||||
<ion-label>
|
||||
<h2>{{ 'addon.mod_quiz.startedon' | translate }}</h2>
|
||||
|
|
|
@ -57,7 +57,7 @@
|
|||
</core-format-text>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
<ion-item *ngIf="!edit && workshop.overallfeedbackfiles && data.assessment?.feedbackattachmentfiles?.length" lines="none">
|
||||
<ion-item *ngIf="!edit && workshop.overallfeedbackfiles && data.assessment?.feedbackattachmentfiles?.length">
|
||||
<ion-label>
|
||||
<core-files [files]="data.assessment?.feedbackattachmentfiles" [component]="component" [componentId]="componentId">
|
||||
</core-files>
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
</div>
|
||||
|
||||
<ion-card *ngFor="let notification of notifications">
|
||||
<ion-item class="ion-text-wrap" lines="none" [attr.aria-label]="
|
||||
<ion-item class="ion-text-wrap" [attr.aria-label]="
|
||||
notification.timeread
|
||||
? notification.subject
|
||||
: 'addon.notifications.unreadnotification' | translate: {$a: notification.subject}">
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</ion-header>
|
||||
<ion-content>
|
||||
<core-loading [hideUntil]="loaded">
|
||||
<ion-item class="ion-text-wrap" lines="none" [attr.aria-label]="subject">
|
||||
<ion-item class="ion-text-wrap" [attr.aria-label]="subject">
|
||||
<core-user-avatar *ngIf="userIdFrom > 0" slot="start" [userId]="userIdFrom" [profileUrl]="profileImageUrlFrom"
|
||||
[fullname]="userFromFullName">
|
||||
<img *ngIf="iconUrl && !modname" [src]="iconUrl" alt="" role="presentation" class="core-avatar-extra">
|
||||
|
|
|
@ -107,11 +107,11 @@
|
|||
</ion-item>
|
||||
|
||||
<!-- Phone view -->
|
||||
<ion-item class="ion-text-wrap ion-no-margin ion-hide-md-up" lines="none">
|
||||
<ion-item class="ion-text-wrap ion-no-margin ion-hide-md-up">
|
||||
<p class="item-heading">{{ notification.displayname }}</p>
|
||||
</ion-item>
|
||||
<!-- If notifications enabled, show toggles. If disabled, show "Disabled" instead of toggle. -->
|
||||
<ion-item *ngFor="let state of ['loggedin', 'loggedoff']" class="ion-text-wrap ion-hide-md-up" lines="none">
|
||||
<ion-item *ngFor="let state of ['loggedin', 'loggedoff']" class="ion-text-wrap ion-hide-md-up">
|
||||
<ion-label class="ion-margin-horizontal">
|
||||
<p>{{ 'core.settings.' + state | translate }}</p>
|
||||
</ion-label>
|
||||
|
@ -148,7 +148,7 @@
|
|||
</ion-item-divider>
|
||||
<ng-container *ngFor="let notification of component.notifications">
|
||||
<!-- If notifications enabled, show toggles. If disabled, show "Disabled" instead of toggle. -->
|
||||
<ion-item class="ion-text-wrap" lines="none">
|
||||
<ion-item class="ion-text-wrap">
|
||||
<ion-label>
|
||||
<p>{{ notification.displayname }}</p>
|
||||
</ion-label>
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
<ion-card-header>
|
||||
<p class="ion-text-wrap ion-no-margin">{{ 'addon.storagemanager.courseinfo' | translate }}</p>
|
||||
<ion-card-title>{{ title }}</ion-card-title>
|
||||
<ion-item class="size ion-text-wrap ion-no-padding" lines="none">
|
||||
<ion-item class="size ion-text-wrap ion-no-padding">
|
||||
<ion-label>
|
||||
<p class="item-heading ion-text-wrap">{{ 'addon.storagemanager.totaldownloads' | translate }}</p>
|
||||
<ion-badge color="light">{{ totalSize | coreBytesToSize }}</ion-badge>
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
<ion-icon name="fas-trash" slot="icon-only" aria-hidden="true"></ion-icon>
|
||||
</ion-button>
|
||||
</ion-item>
|
||||
<ion-item class="size ion-text-wrap" lines="none">
|
||||
<ion-item class="size ion-text-wrap">
|
||||
<ion-label>
|
||||
<h2 class="ion-text-wrap">{{ 'addon.storagemanager.coursesspaceusage' | translate }}</h2>
|
||||
<ion-badge color="light">{{ totalSize | coreBytesToSize }}</ion-badge>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<ion-item lines="none" class="core-timer" role="timer" [ngClass]="{'ion-text-center': align == 'center', 'ion-text-end': align == 'right'}">
|
||||
<ion-item class="core-timer" role="timer" [ngClass]="{'ion-text-center': align == 'center', 'ion-text-end': align == 'right'}">
|
||||
<ion-icon name="fas-clock" slot="start" aria-hidden="true"></ion-icon>
|
||||
<ion-label>
|
||||
<span *ngIf="timeLeft && timeLeft > 0 && timerText" class="core-timer-text">{{ timerText }}</span>
|
||||
|
|
|
@ -96,7 +96,7 @@
|
|||
<ion-badge *ngIf="section.highlighted && highlighted" slot="end">{{highlighted}}</ion-badge>
|
||||
</ion-item-divider>
|
||||
|
||||
<ion-item class="ion-text-wrap" *ngIf="section.summary" lines="none">
|
||||
<ion-item class="ion-text-wrap" *ngIf="section.summary">
|
||||
<ion-label>
|
||||
<core-format-text [text]="section.summary" contextLevel="course" [contextInstanceId]="course.id">
|
||||
</core-format-text>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<ion-item class="ion-text-wrap collapsible-title" lines="none">
|
||||
<ion-item class="ion-text-wrap collapsible-title">
|
||||
<core-mod-icon slot="start" [modicon]="modicon" [modname]="module.modname" [componentId]="module.instance">
|
||||
</core-mod-icon>
|
||||
<ion-label>
|
||||
|
@ -11,7 +11,7 @@
|
|||
<ng-content select="[title]"></ng-content>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
<ion-item class="ion-text-wrap" *ngIf="description" lines="none">
|
||||
<ion-item class="ion-text-wrap" *ngIf="description">
|
||||
<ion-label>
|
||||
<core-format-text [text]="description" [component]="component" [componentId]="componentId" contextLevel="module"
|
||||
[contextInstanceId]="module.id" [courseId]="courseId" [maxHeight]="expandDescription ? null : 120">
|
||||
|
@ -20,7 +20,7 @@
|
|||
</ion-item>
|
||||
<ng-content select="[description]"></ng-content>
|
||||
|
||||
<ion-item class="ion-text-wrap core-module-dates" lines="none" *ngIf="showCompletion && (module.dates?.length ||
|
||||
<ion-item class="ion-text-wrap core-module-dates" *ngIf="showCompletion && (module.dates?.length ||
|
||||
(module.completiondata && module.completiondata.isautomatic && module.uservisible))">
|
||||
<ion-label>
|
||||
<!-- Activity dates. -->
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<ion-card *ngIf="module.handlerData && module.visibleoncoursepage !== 0">
|
||||
<ng-container *ngIf="!module.handlerData.loading">
|
||||
<ion-item id="core-course-module-{{module.id}}" detail="false" lines="none"
|
||||
<ion-item id="core-course-module-{{module.id}}" detail="false"
|
||||
class="ion-text-wrap core-course-module-handler core-module-main-item {{module.handlerData.class}}"
|
||||
(click)="moduleClicked($event)" [attr.aria-label]="module.handlerData.a11yTitle" [ngClass]="{
|
||||
'has-module-info': hasInfo,
|
||||
|
@ -57,7 +57,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</ion-item>
|
||||
<ion-item *ngIf="hasInfo" id="core-course-module-{{module.id}}-info" detail="false" lines="none"
|
||||
<ion-item *ngIf="hasInfo" id="core-course-module-{{module.id}}-info" detail="false"
|
||||
class="ion-text-wrap core-course-module-handler core-course-module-info {{module.handlerData.class}}" [ngClass]="{
|
||||
'item-media': module.handlerData.icon,
|
||||
'item-dimmed': module.visible === 0 || module.uservisible === false
|
||||
|
@ -99,7 +99,7 @@
|
|||
<!-- Loading. -->
|
||||
<ion-item *ngIf="module.handlerData.loading" role="status" class="ion-text-wrap" id="core-course-module-{{module.id}}"
|
||||
[attr.aria-label]="module.handlerData.a11yTitle"
|
||||
[ngClass]="['core-course-module-handler', 'core-module-loading', module.handlerData.class]" detail="false" lines="none">
|
||||
[ngClass]="['core-course-module-handler', 'core-module-loading', module.handlerData.class]" detail="false">
|
||||
<ion-label>
|
||||
<ion-spinner [attr.aria-label]="'core.loading' | translate"></ion-spinner>
|
||||
</ion-label>
|
||||
|
|
|
@ -12,8 +12,8 @@
|
|||
</ng-container>
|
||||
</div>
|
||||
|
||||
<ion-item class="ion-text-wrap" button lines="none" detail="false" (click)="openCourse()"
|
||||
[attr.aria-label]="course.displayname || course.fullname" [class.item-disabled]="course.visible == 0">
|
||||
<ion-item class="ion-text-wrap" button detail="false" (click)="openCourse()" [attr.aria-label]="course.displayname || course.fullname"
|
||||
[class.item-disabled]="course.visible == 0">
|
||||
|
||||
<ng-container *ngIf="layout == 'list' || layout == 'listwithenrol'">
|
||||
<ion-icon *ngIf="!course.courseImage" name="fas-graduation-cap" slot="start" class="course-icon core-course-thumb">
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
[style.background-color]="course.color">
|
||||
<img *ngIf="course.courseImage" [src]="course.courseImage" core-external-content alt="" />
|
||||
</div>
|
||||
<ion-item button lines="none" (click)="openCourse()" [attr.aria-label]="course.displayname || course.fullname"
|
||||
class="core-course-header" [class.item-disabled]="course.visible == 0"
|
||||
<ion-item button (click)="openCourse()" [attr.aria-label]="course.displayname || course.fullname" class="core-course-header"
|
||||
[class.item-disabled]="course.visible == 0"
|
||||
[class.core-course-only-title]="!showAll || progress < 0 && completionUserTracked === false" detail="false">
|
||||
<ion-label class="ion-text-wrap core-course-title"
|
||||
[class.core-course-with-buttons]="courseOptionMenuEnabled || (downloadCourseEnabled && showDownload)"
|
||||
|
@ -53,7 +53,7 @@
|
|||
</ion-button>
|
||||
</div>
|
||||
</ion-item>
|
||||
<ion-item *ngIf="showAll && progress >= 0 && completionUserTracked !== false" lines="none" class="core-course-progress">
|
||||
<ion-item *ngIf="showAll && progress >= 0 && completionUserTracked !== false" class="core-course-progress">
|
||||
<ion-label>
|
||||
<core-progress-bar [progress]="progress" a11yText="core.courses.aria:courseprogress"></core-progress-bar>
|
||||
</ion-label>
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
<ion-refresher-content pullingText="{{ 'core.pulltorefresh' | translate }}"></ion-refresher-content>
|
||||
</ion-refresher>
|
||||
<core-loading [hideUntil]="loaded">
|
||||
<ion-item class="ion-text-wrap divider" lines="none">
|
||||
<ion-item class="ion-text-wrap divider">
|
||||
<ion-label>
|
||||
<h2>{{ 'core.courses.mycourses' | translate }}</h2>
|
||||
</ion-label>
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
<ion-content>
|
||||
<ion-list>
|
||||
<ng-container *ngIf="!changingPassword">
|
||||
<ion-item class="ion-text-wrap" lines="none">
|
||||
<ion-item class="ion-text-wrap">
|
||||
<ion-label>
|
||||
<h2>{{ 'core.login.forcepasswordchangenotice' | translate }}</h2>
|
||||
<p class="ion-padding-top">{{ 'core.login.changepasswordinstructions' | translate }}</p>
|
||||
|
@ -29,7 +29,7 @@
|
|||
</ion-button>
|
||||
</ng-container>
|
||||
<ng-container *ngIf="changingPassword">
|
||||
<ion-item class="ion-text-wrap" lines="none">
|
||||
<ion-item class="ion-text-wrap">
|
||||
<ion-label>
|
||||
<p>{{ 'core.login.changepasswordreconnectinstructions' | translate }}</p>
|
||||
</ion-label>
|
||||
|
@ -38,7 +38,7 @@
|
|||
{{ 'core.login.reconnect' | translate }}
|
||||
</ion-button>
|
||||
</ng-container>
|
||||
<ion-item class="ion-text-wrap" lines="none">
|
||||
<ion-item class="ion-text-wrap">
|
||||
<ion-label>
|
||||
<p>{{ 'core.login.changepasswordlogoutinstructions' | translate }}</p>
|
||||
</ion-label>
|
||||
|
|
|
@ -54,7 +54,7 @@
|
|||
|
||||
<ng-container *ngIf="showScanQR">
|
||||
<div class="ion-text-center ion-padding">{{ 'core.login.or' | translate }}</div>
|
||||
<ion-button expand="block" color="light" class="ion-margin" lines="none" (click)="showInstructionsAndScanQR()">
|
||||
<ion-button expand="block" color="light" class="ion-margin" (click)="showInstructionsAndScanQR()">
|
||||
<ion-icon slot="start" name="fas-qrcode" aria-hidden="true"></ion-icon>
|
||||
{{ 'core.scanqr' | translate }}
|
||||
</ion-button>
|
||||
|
@ -68,7 +68,7 @@
|
|||
</ion-button>
|
||||
|
||||
<ion-list *ngIf="identityProviders && identityProviders.length" class="ion-padding-top core-login-identity-providers">
|
||||
<ion-item class="ion-text-wrap" lines="none">
|
||||
<ion-item class="ion-text-wrap">
|
||||
<ion-label>
|
||||
<h3 class="item-heading">{{ 'core.login.potentialidps' | translate }}</h3>
|
||||
</ion-label>
|
||||
|
@ -81,12 +81,12 @@
|
|||
</ion-list>
|
||||
|
||||
<ion-list *ngIf="canSignup" class="ion-padding-top core-login-sign-up">
|
||||
<ion-item class="ion-text-wrap" lines="none">
|
||||
<ion-item class="ion-text-wrap">
|
||||
<ion-label>
|
||||
<h3 class="item-heading">{{ 'core.login.firsttime' | translate }}</h3>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
<ion-item class="ion-text-wrap" lines="none" *ngIf="authInstructions">
|
||||
<ion-item class="ion-text-wrap" *ngIf="authInstructions">
|
||||
<ion-label>
|
||||
<p>
|
||||
<core-format-text [text]="authInstructions" [filter]="false"></core-format-text>
|
||||
|
|
|
@ -232,7 +232,7 @@
|
|||
</h3>
|
||||
</ion-label>
|
||||
</ion-item-divider>
|
||||
<ion-item class="ion-text-wrap" lines="none">
|
||||
<ion-item class="ion-text-wrap">
|
||||
<ion-label>
|
||||
<h3 class="item-heading">{{ 'core.considereddigitalminor' | translate }}</h3>
|
||||
<p>{{ 'core.digitalminor_desc' | translate }}</p>
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</ion-toolbar>
|
||||
</ion-header>
|
||||
<ion-content>
|
||||
<ion-list lines="none">
|
||||
<ion-list>
|
||||
<ion-item class="ion-text-wrap">
|
||||
<ion-label>{{ 'core.login.passwordforgotteninstructions2' | translate }}</ion-label>
|
||||
</ion-item>
|
||||
|
|
|
@ -65,7 +65,7 @@
|
|||
|
||||
<ng-container *ngIf="showScanQR">
|
||||
<div class="ion-text-center ion-padding">{{ 'core.login.or' | translate }}</div>
|
||||
<ion-button expand="block" color="light" class="ion-margin" lines="none" (click)="showInstructionsAndScanQR()">
|
||||
<ion-button expand="block" color="light" class="ion-margin" (click)="showInstructionsAndScanQR()">
|
||||
<ion-icon slot="start" name="fas-qrcode" aria-hidden="true"></ion-icon>
|
||||
{{ 'core.scanqr' | translate }}
|
||||
</ion-button>
|
||||
|
@ -80,7 +80,7 @@
|
|||
|
||||
<!-- Identity providers. -->
|
||||
<ion-list *ngIf="identityProviders && identityProviders.length" class="ion-padding-top core-login-identity-providers">
|
||||
<ion-item class="ion-text-wrap" lines="none">
|
||||
<ion-item class="ion-text-wrap">
|
||||
<ion-label>
|
||||
<h3 class="item-heading">{{ 'core.login.potentialidps' | translate }}</h3>
|
||||
</ion-label>
|
||||
|
|
|
@ -42,7 +42,7 @@
|
|||
</ion-item>
|
||||
|
||||
<ion-list [class.hidden]="!hasSites && !enteredSiteUrl" class="core-login-site-list">
|
||||
<ion-item lines="none" class="core-login-site-list-title">
|
||||
<ion-item class="core-login-site-list-title">
|
||||
<ion-label>
|
||||
<h2 class="item-heading">{{ 'core.login.selectsite' | translate }}</h2>
|
||||
</ion-label>
|
||||
|
@ -73,7 +73,7 @@
|
|||
</div>
|
||||
</ng-container>
|
||||
|
||||
<ion-item *ngIf="siteSelector == 'url'" lines="none">
|
||||
<ion-item *ngIf="siteSelector == 'url'">
|
||||
<ion-label>
|
||||
<ion-button expand="block" [disabled]="!siteForm.valid" class="ion-text-wrap" type="submit">
|
||||
{{ 'core.login.connect' | translate }}
|
||||
|
@ -85,7 +85,7 @@
|
|||
<ng-container *ngIf="fixedSites">
|
||||
<!-- Pick the site from a list of fixed sites. -->
|
||||
<ion-list *ngIf="siteSelector == 'list'">
|
||||
<ion-item lines="none">
|
||||
<ion-item>
|
||||
<ion-label>
|
||||
<h2 class="item-heading">{{ 'core.login.selectsite' | translate }}</h2>
|
||||
</ion-label>
|
||||
|
@ -101,8 +101,7 @@
|
|||
|
||||
<ng-container *ngIf="showScanQR && !hasSites && !enteredSiteUrl">
|
||||
<div class="ion-text-center ion-padding ion-margin-top">{{ 'core.login.or' | translate }}</div>
|
||||
<ion-button expand="block" color="light" class="ion-margin" lines="none" (click)="showInstructionsAndScanQR()"
|
||||
aria-haspopup="dialog">
|
||||
<ion-button expand="block" color="light" class="ion-margin" (click)="showInstructionsAndScanQR()" aria-haspopup="dialog">
|
||||
<ion-icon slot="start" name="fas-qrcode" aria-hidden="true"></ion-icon>
|
||||
{{ 'core.scanqr' | translate }}
|
||||
</ion-button>
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
</ion-label>
|
||||
</ion-item>
|
||||
|
||||
<ion-item class="ion-text-center" *ngIf="(!handlers || !handlers.length) && !handlersLoaded" lines="none">
|
||||
<ion-item class="ion-text-center" *ngIf="(!handlers || !handlers.length) && !handlersLoaded">
|
||||
<ion-label>
|
||||
<ion-spinner [attr.aria-label]="'core.loading' | translate"></ion-spinner>
|
||||
</ion-label>
|
||||
|
@ -43,7 +43,7 @@
|
|||
|
||||
<ion-item button *ngFor="let handler of handlers" class="ion-text-wrap" (click)="handlerClicked($event, handler)"
|
||||
[ngClass]="['core-user-menu-handler', handler.class || '']" [hidden]="handler.hidden"
|
||||
[attr.aria-label]="handler.title | translate" detail="true" lines="none">
|
||||
[attr.aria-label]="handler.title | translate" detail="true">
|
||||
<ion-icon *ngIf="handler.icon" [name]="handler.icon" slot="start" aria-hidden="true"></ion-icon>
|
||||
<ion-label>
|
||||
<p class="item-heading">{{ handler.title | translate }}</p>
|
||||
|
|
|
@ -36,8 +36,7 @@
|
|||
</ion-content>
|
||||
|
||||
<ion-footer class="ion-no-border">
|
||||
<ion-item button class="ion-text-wrap ion-text-center core-about-deviceinfo" detail="false" (click)="openPage('deviceinfo')"
|
||||
lines="none">
|
||||
<ion-item button class="ion-text-wrap ion-text-center core-about-deviceinfo" detail="false" (click)="openPage('deviceinfo')">
|
||||
<ion-label>
|
||||
<h2>{{ appName }} {{ versionName }}</h2>
|
||||
</ion-label>
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
</ion-segment>
|
||||
</ion-item>
|
||||
<ion-item class="ion-text-wrap core-settings-general-color-scheme" *ngIf="colorSchemes.length > 0"
|
||||
[lines]="selectedScheme=='system' && isAndroid ? 'none' : 'inset'">
|
||||
[lines]="selectedScheme=='system' && isAndroid ? 'none' : ''">
|
||||
<ion-label>
|
||||
<h2>{{ 'core.settings.colorscheme' | translate }}</h2>
|
||||
<p *ngIf="colorSchemeDisabled" class="text-danger">{{ 'core.settings.forcedsetting' | translate }}</p>
|
||||
|
|
|
@ -55,7 +55,7 @@
|
|||
</ion-content>
|
||||
|
||||
<ng-template #allCourseList>
|
||||
<ion-item button class="ion-text-wrap" (click)="openAvailableCourses()" lines="none">
|
||||
<ion-item button class="ion-text-wrap" (click)="openAvailableCourses()">
|
||||
<ion-icon name="fas-graduation-cap" fixed-width slot="start" aria-hidden="true"></ion-icon>
|
||||
<ion-label>
|
||||
<h2>{{ 'core.courses.availablecourses' | translate}}</h2>
|
||||
|
@ -69,7 +69,7 @@
|
|||
</ng-template>
|
||||
|
||||
<ng-template #categories>
|
||||
<ion-item button class="ion-text-wrap" (click)="openCourseCategories()" lines="none">
|
||||
<ion-item button class="ion-text-wrap" (click)="openCourseCategories()">
|
||||
<ion-icon name="fas-folder" slot="start" aria-hidden="true"></ion-icon>
|
||||
<ion-label>
|
||||
<h2>{{ 'core.courses.categories' | translate}}</h2>
|
||||
|
@ -78,7 +78,7 @@
|
|||
</ng-template>
|
||||
|
||||
<ng-template #enrolledCourseList>
|
||||
<ion-item button class="ion-text-wrap" (click)="openMyCourses()" lines="none">
|
||||
<ion-item button class="ion-text-wrap" (click)="openMyCourses()">
|
||||
<ion-icon name="fas-graduation-cap" fixed-width slot="start" aria-hidden="true">
|
||||
</ion-icon>
|
||||
<ion-label>
|
||||
|
@ -88,7 +88,7 @@
|
|||
</ng-template>
|
||||
|
||||
<ng-template #courseSearch>
|
||||
<ion-item button class="ion-text-wrap" (click)="openSearch()" lines="none">
|
||||
<ion-item button class="ion-text-wrap" (click)="openSearch()">
|
||||
<ion-icon name="fas-search" slot="start" aria-hidden="true"></ion-icon>
|
||||
<ion-label>
|
||||
<h2>{{ 'core.courses.searchcourses' | translate}}</h2>
|
||||
|
|
|
@ -1049,6 +1049,20 @@ audio.core-media-adapt-width {
|
|||
width: 100%;
|
||||
}
|
||||
|
||||
ion-item {
|
||||
--inner-border-width: 0px;
|
||||
}
|
||||
|
||||
ion-item.item-lines-full {
|
||||
--inner-border-width: 0px;
|
||||
--border-width: 0 0 1px 0;
|
||||
}
|
||||
|
||||
ion-item.item-lines-inset {
|
||||
--inner-border-width: 1px;
|
||||
--border-width: 0px;
|
||||
}
|
||||
|
||||
// Fake item.
|
||||
div.fake-ion-item {
|
||||
position: relative;
|
||||
|
@ -1061,7 +1075,6 @@ div.fake-ion-item {
|
|||
text-decoration: none;
|
||||
overflow: hidden;
|
||||
box-sizing: border-box;
|
||||
|
||||
}
|
||||
|
||||
html.md div.fake-ion-item {
|
||||
|
|
Loading…
Reference in New Issue