commit
3e10a1c47f
|
@ -55,7 +55,7 @@
|
|||
<ion-card list *ngIf="notificationsEnabled">
|
||||
<ion-item>
|
||||
<ion-label>{{ 'addon.calendar.notifications' | translate }}</ion-label>
|
||||
<ion-select [(ngModel)]="notificationTime" (ionChange)="updateNotificationTime($event)" interface="popover">
|
||||
<ion-select [(ngModel)]="notificationTime" (ionChange)="updateNotificationTime($event)" interface="action-sheet">
|
||||
<ion-option value="-1">{{ 'core.defaultvalue' | translate :{$a: defaultTimeReadable} }}</ion-option>
|
||||
<ion-option value="0">{{ 'core.settings.disabled' | translate }}</ion-option>
|
||||
<ion-option value="10">{{ 600 | coreDuration }}</ion-option>
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<ion-list>
|
||||
<ion-item>
|
||||
<ion-label>{{ 'addon.calendar.defaultnotificationtime' | translate }}</ion-label>
|
||||
<ion-select [(ngModel)]="defaultTime" (ionChange)="updateDefaultTime($event)" interface="popover">
|
||||
<ion-select [(ngModel)]="defaultTime" (ionChange)="updateDefaultTime($event)" interface="action-sheet">
|
||||
<ion-option value="0">{{ 'core.settings.disabled' | translate }}</ion-option>
|
||||
<ion-option value="10">{{ 600 | coreDuration }}</ion-option>
|
||||
<ion-option value="30">{{ 1800 | coreDuration }}</ion-option>
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
|
||||
<core-loading [hideUntil]="filesLoaded" *ngIf="showPrivateFiles || showSiteFiles">
|
||||
<!-- Allow selecting the files to see: private or site. -->
|
||||
<div padding *ngIf="showPrivateFiles && showSiteFiles && !path" class="safe-padding-horizontal">
|
||||
<div padding *ngIf="showPrivateFiles && showSiteFiles && !path">
|
||||
<ion-select [(ngModel)]="root" (ngModelChange)="rootChanged()" interface="popover" class="core-button-select">
|
||||
<ion-option value="my">{{ 'addon.files.privatefiles' | translate }}</ion-option>
|
||||
<ion-option value="site">{{ 'addon.files.sitefiles' | translate }}</ion-option>
|
||||
|
|
|
@ -156,7 +156,7 @@
|
|||
<!-- Grade using a scale. -->
|
||||
<ion-item text-wrap *ngIf="grade.method == 'simple' && grade.scale">
|
||||
<ion-label><h2>{{ 'addon.mod_assign.grade' | translate }}</h2></ion-label>
|
||||
<ion-select [(ngModel)]="grade.grade" interface="popover" [disabled]="grade.disabled">
|
||||
<ion-select [(ngModel)]="grade.grade" interface="action-sheet" [disabled]="grade.disabled">
|
||||
<ion-option *ngFor="let grade of grade.scale" [value]="grade.value">{{grade.label}}</ion-option>
|
||||
</ion-select>
|
||||
</ion-item>
|
||||
|
@ -164,7 +164,7 @@
|
|||
<!-- Outcomes. -->
|
||||
<ion-item text-wrap *ngFor="let outcome of gradeInfo.outcomes">
|
||||
<ion-label><h2>{{ outcome.name }}</h2></ion-label>
|
||||
<ion-select *ngIf="canSaveGrades && outcome.itemNumber" [(ngModel)]="outcome.selectedId" interface="popover" [disabled]="gradeInfo.disabled">
|
||||
<ion-select *ngIf="canSaveGrades && outcome.itemNumber" [(ngModel)]="outcome.selectedId" interface="action-sheet" [disabled]="gradeInfo.disabled">
|
||||
<ion-option *ngFor="let grade of outcome.options" [value]="grade.value">{{grade.label}}</ion-option>
|
||||
</ion-select>
|
||||
<p item-content *ngIf="!canSaveGrades || !outcome.itemNumber">{{ outcome.selected }}</p>
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
<ion-item text-wrap *ngIf="groupInfo && (groupInfo.separateGroups || groupInfo.visibleGroups)">
|
||||
<ion-label id="addon-data-groupslabel" *ngIf="groupInfo.separateGroups">{{ 'core.groupsseparate' | translate }}</ion-label>
|
||||
<ion-label id="addon-data-groupslabel" *ngIf="groupInfo.visibleGroups">{{ 'core.groupsvisible' | translate }}</ion-label>
|
||||
<ion-select [(ngModel)]="selectedGroup" (ionChange)="setGroup(selectedGroup)" aria-labelledby="addon-data-groupslabel" interface="popover">
|
||||
<ion-select [(ngModel)]="selectedGroup" (ionChange)="setGroup(selectedGroup)" aria-labelledby="addon-data-groupslabel" interface="action-sheet">
|
||||
<ion-option *ngFor="let groupOpt of groupInfo.groups" [value]="groupOpt.id">{{groupOpt.name}}</ion-option>
|
||||
</ion-select>
|
||||
</ion-item>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<span *ngIf="!isShowOrListMode()" [formGroup]="form">
|
||||
<span *ngIf="mode == 'edit'" [core-mark-required]="field.required" class="core-mark-required"></span>
|
||||
<ion-select [formControlName]="'f_'+field.id" multiple="true" [placeholder]="'addon.mod_data.menuchoose' | translate" [selectOptions]="{title: field.name}" interface="popover">
|
||||
<ion-select [formControlName]="'f_'+field.id" multiple="true" [placeholder]="'addon.mod_data.menuchoose' | translate" [selectOptions]="{title: field.name}" interface="action-sheet">
|
||||
<ion-option *ngFor="let option of options" [value]="option.value">{{option.key}}</ion-option>
|
||||
</ion-select>
|
||||
<core-input-errors *ngIf="error && mode == 'edit'" [control]="form.controls['f_'+field.id]" [errorText]="error"></core-input-errors>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<span *ngIf="!isShowOrListMode()" [formGroup]="form">
|
||||
<span *ngIf="mode == 'edit'" [core-mark-required]="field.required" class="core-mark-required"></span>
|
||||
<ion-select [formControlName]="'f_'+field.id" [placeholder]="'addon.mod_data.menuchoose' | translate" [selectOptions]="{title: field.name}" interface="popover">
|
||||
<ion-select [formControlName]="'f_'+field.id" [placeholder]="'addon.mod_data.menuchoose' | translate" [selectOptions]="{title: field.name}" interface="action-sheet">
|
||||
<ion-option value="">{{ 'addon.mod_data.menuchoose' | translate }}</ion-option>
|
||||
<ion-option *ngFor="let option of options" [value]="option">{{option}}</ion-option>
|
||||
</ion-select>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<span *ngIf="!isShowOrListMode()" [formGroup]="form">
|
||||
<span *ngIf="mode == 'edit'" [core-mark-required]="field.required" class="core-mark-required"></span>
|
||||
<ion-select [formControlName]="'f_'+field.id" multiple="true" [placeholder]="'addon.mod_data.menuchoose' | translate" [selectOptions]="{title: field.name}" interface="popover">
|
||||
<ion-select [formControlName]="'f_'+field.id" multiple="true" [placeholder]="'addon.mod_data.menuchoose' | translate" [selectOptions]="{title: field.name}" interface="action-sheet">
|
||||
<ion-option *ngFor="let option of options" [value]="option.value">{{option.key}}</ion-option>
|
||||
</ion-select>
|
||||
<core-input-errors *ngIf="error && mode == 'edit'" [control]="form.controls['f_'+field.id]" [errorText]="error"></core-input-errors>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<span *ngIf="!isShowOrListMode()" [formGroup]="form">
|
||||
<span *ngIf="mode == 'edit'" [core-mark-required]="field.required" class="core-mark-required"></span>
|
||||
<ion-select [formControlName]="'f_'+field.id" [placeholder]="'addon.mod_data.menuchoose' | translate" [selectOptions]="{title: field.name}" interface="popover">
|
||||
<ion-select [formControlName]="'f_'+field.id" [placeholder]="'addon.mod_data.menuchoose' | translate" [selectOptions]="{title: field.name}" interface="action-sheet">
|
||||
<ion-option value="">{{ 'addon.mod_data.menuchoose' | translate }}</ion-option>
|
||||
<ion-option *ngFor="let option of options" [value]="option">{{option}}</ion-option>
|
||||
</ion-select>
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
<ion-item text-wrap *ngIf="groupInfo && (groupInfo.separateGroups || groupInfo.visibleGroups)">
|
||||
<ion-label id="addon-data-groupslabel" *ngIf="groupInfo.separateGroups">{{ 'core.groupsseparate' | translate }}</ion-label>
|
||||
<ion-label id="addon-data-groupslabel" *ngIf="groupInfo.visibleGroups">{{ 'core.groupsvisible' | translate }}</ion-label>
|
||||
<ion-select [(ngModel)]="selectedGroup" (ionChange)="setGroup(selectedGroup)" aria-labelledby="addon-data-groupslabel" interface="popover">
|
||||
<ion-select [(ngModel)]="selectedGroup" (ionChange)="setGroup(selectedGroup)" aria-labelledby="addon-data-groupslabel" interface="action-sheet">
|
||||
<ion-option *ngFor="let groupOpt of groupInfo.groups" [value]="groupOpt.id">{{groupOpt.name}}</ion-option>
|
||||
</ion-select>
|
||||
</ion-item>
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
<ion-item text-wrap *ngIf="groupInfo && (groupInfo.separateGroups || groupInfo.visibleGroups)">
|
||||
<ion-label id="addon-data-groupslabel" *ngIf="groupInfo.separateGroups">{{ 'core.groupsseparate' | translate }}</ion-label>
|
||||
<ion-label id="addon-data-groupslabel" *ngIf="groupInfo.visibleGroups">{{ 'core.groupsvisible' | translate }}</ion-label>
|
||||
<ion-select [(ngModel)]="selectedGroup" (ionChange)="setGroup(selectedGroup)" aria-labelledby="addon-data-groupslabel" interface="popover">
|
||||
<ion-select [(ngModel)]="selectedGroup" (ionChange)="setGroup(selectedGroup)" aria-labelledby="addon-data-groupslabel" interface="action-sheet">
|
||||
<ion-option *ngFor="let groupOpt of groupInfo.groups" [value]="groupOpt.id">{{groupOpt.name}}</ion-option>
|
||||
</ion-select>
|
||||
</ion-item>
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
</ion-item>
|
||||
<ion-item text-wrap>
|
||||
<ion-label stacked>{{ 'core.sortby' | translate }}</ion-label>
|
||||
<ion-select interface="popover" name="sortBy" formControlName="sortBy">
|
||||
<ion-select interface="action-sheet" name="sortBy" formControlName="sortBy">
|
||||
<optgroup *ngIf="fieldsArray.length" label="{{ 'addon.mod_data.fields' | translate }}">
|
||||
<ion-option *ngFor="let field of fieldsArray" [value]="field.id">{{field.name}}</ion-option>
|
||||
</optgroup>
|
||||
|
|
|
@ -47,7 +47,7 @@
|
|||
<ion-item text-wrap *ngIf="access.canedititems && (groupInfo.separateGroups || groupInfo.visibleGroups)">
|
||||
<ion-label id="addon-feedback-groupslabel" *ngIf="groupInfo.separateGroups">{{ 'core.groupsseparate' | translate }}</ion-label>
|
||||
<ion-label id="addon-feedback-groupslabel" *ngIf="groupInfo.visibleGroups">{{ 'core.groupsvisible' | translate }}</ion-label>
|
||||
<ion-select [(ngModel)]="group" (ionChange)="setGroup(group)" aria-labelledby="addon-feedback-groupslabel" interface="popover">
|
||||
<ion-select [(ngModel)]="group" (ionChange)="setGroup(group)" aria-labelledby="addon-feedback-groupslabel" interface="action-sheet">
|
||||
<ion-option *ngFor="let groupOpt of groupInfo.groups" [value]="groupOpt.id">{{groupOpt.name}}</ion-option>
|
||||
</ion-select>
|
||||
</ion-item>
|
||||
|
|
|
@ -49,7 +49,7 @@
|
|||
</ion-item>
|
||||
</ion-list>
|
||||
<ng-container *ngSwitchCase="'multichoice-d'">
|
||||
<ion-select [required]="item.required" name="{{item.typ}}_{{item.id}}" [(ngModel)]="item.value" interface="popover">
|
||||
<ion-select [required]="item.required" name="{{item.typ}}_{{item.id}}" [(ngModel)]="item.value" interface="action-sheet">
|
||||
<ion-option *ngFor="let option of item.choices" [value]="option.value"><core-format-text [component]="component" [componentId]="componentId" [text]="option.label"></core-format-text></ion-option>
|
||||
</ion-select>
|
||||
</ng-container>
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
<ion-item text-wrap *ngIf="groupInfo.separateGroups || groupInfo.visibleGroups">
|
||||
<ion-label id="addon-feedback-groupslabel" *ngIf="groupInfo.separateGroups">{{ 'core.groupsseparate' | translate }}</ion-label>
|
||||
<ion-label id="addon-feedback-groupslabel" *ngIf="groupInfo.visibleGroups">{{ 'core.groupsvisible' | translate }}</ion-label>
|
||||
<ion-select [(ngModel)]="selectedGroup" (ionChange)="loadAttempts(selectedGroup)" aria-labelledby="addon-feedback-groupslabel" interface="popover">
|
||||
<ion-select [(ngModel)]="selectedGroup" (ionChange)="loadAttempts(selectedGroup)" aria-labelledby="addon-feedback-groupslabel" interface="action-sheet">
|
||||
<ion-option *ngFor="let groupOpt of groupInfo.groups" [value]="groupOpt.id">{{groupOpt.name}}</ion-option>
|
||||
</ion-select>
|
||||
</ion-item>
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
<ion-item text-wrap *ngIf="groupInfo.separateGroups || groupInfo.visibleGroups">
|
||||
<ion-label id="addon-feedback-groupslabel" *ngIf="groupInfo.separateGroups">{{ 'core.groupsseparate' | translate }}</ion-label>
|
||||
<ion-label id="addon-feedback-groupslabel" *ngIf="groupInfo.visibleGroups">{{ 'core.groupsvisible' | translate }}</ion-label>
|
||||
<ion-select [(ngModel)]="selectedGroup" (ionChange)="loadAttempts(selectedGroup)" aria-labelledby="addon-feedback-groupslabel" interface="popover">
|
||||
<ion-select [(ngModel)]="selectedGroup" (ionChange)="loadAttempts(selectedGroup)" aria-labelledby="addon-feedback-groupslabel" interface="action-sheet">
|
||||
<ion-option *ngFor="let groupOpt of groupInfo.groups" [value]="groupOpt.id">{{groupOpt.name}}</ion-option>
|
||||
</ion-select>
|
||||
</ion-item>
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
</ion-item>
|
||||
<ion-item *ngIf="showGroups">
|
||||
<ion-label id="addon-mod-forum-groupslabel">{{ 'addon.mod_forum.group' | translate }}</ion-label>
|
||||
<ion-select [(ngModel)]="newDiscussion.groupId" aria-labelledby="addon-mod-forum-groupslabel" interface="popover">
|
||||
<ion-select [(ngModel)]="newDiscussion.groupId" aria-labelledby="addon-mod-forum-groupslabel" interface="action-sheet">
|
||||
<ion-option *ngFor="let group of groups" [value]="group.id">{{ group.name }}</ion-option>
|
||||
</ion-select>
|
||||
</ion-item>
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
</ion-item>
|
||||
<ion-item *ngIf="categories.length > 0">
|
||||
<ion-label stacked id="addon-mod-glossary-categories-label">{{ 'addon.mod_glossary.categories' | translate }}</ion-label>
|
||||
<ion-select [(ngModel)]="options.categories" multiple="true" aria-labelledby="addon-mod-glossary-categories-label" interface="popover">
|
||||
<ion-select [(ngModel)]="options.categories" multiple="true" aria-labelledby="addon-mod-glossary-categories-label" interface="action-sheet">
|
||||
<ion-option *ngFor="let category of categories" [value]="category.id">{{ category.name }}</ion-option>
|
||||
</ion-select>
|
||||
</ion-item>
|
||||
|
|
|
@ -110,7 +110,7 @@
|
|||
<ion-item text-wrap *ngIf="groupInfo && (groupInfo.separateGroups || groupInfo.visibleGroups)">
|
||||
<ion-label id="addon-mod_lesson-groupslabel" *ngIf="groupInfo.separateGroups">{{ 'core.groupsseparate' | translate }}</ion-label>
|
||||
<ion-label id="addon-mod_lesson-groupslabel" *ngIf="groupInfo.visibleGroups">{{ 'core.groupsvisible' | translate }}</ion-label>
|
||||
<ion-select [(ngModel)]="group" (ionChange)="setGroup(group)" aria-labelledby="addon-mod_lesson-groupslabel" interface="popover">
|
||||
<ion-select [(ngModel)]="group" (ionChange)="setGroup(group)" aria-labelledby="addon-mod_lesson-groupslabel" interface="action-sheet">
|
||||
<ion-option *ngFor="let groupOpt of groupInfo.groups" [value]="groupOpt.id">{{groupOpt.name}}</ion-option>
|
||||
</ion-select>
|
||||
</ion-item>
|
||||
|
|
|
@ -97,7 +97,7 @@
|
|||
<p><core-format-text id="addon-mod_lesson-matching-{{row.id}}" [component]="component" [componentId]="lesson.coursemodule" [text]="row.text"></core-format-text></p>
|
||||
</ion-col>
|
||||
<ion-col>
|
||||
<ion-select [id]="row.id" [formControlName]="row.name" [attr.aria-labelledby]="'addon-mod_lesson-matching-' + row.id" interface="popover">
|
||||
<ion-select [id]="row.id" [formControlName]="row.name" [attr.aria-labelledby]="'addon-mod_lesson-matching-' + row.id" interface="action-sheet">
|
||||
<ion-option *ngFor="let option of row.options" [value]="option.value">{{option.label}}</ion-option>
|
||||
</ion-select>
|
||||
</ion-col>
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
<!-- Retake selector if there is more than one retake. -->
|
||||
<ion-item text-wrap *ngIf="student.attempts && student.attempts.length > 1">
|
||||
<ion-label id="addon-mod_lesson-retakeslabel">{{ 'addon.mod_lesson.attemptheader' | translate }}</ion-label>
|
||||
<ion-select [(ngModel)]="selectedRetake" (ionChange)="changeRetake(selectedRetake)" aria-labelledby="addon-mod_lesson-retakeslabel" interface="popover">
|
||||
<ion-select [(ngModel)]="selectedRetake" (ionChange)="changeRetake(selectedRetake)" aria-labelledby="addon-mod_lesson-retakeslabel" interface="action-sheet">
|
||||
<ion-option *ngFor="let retake of student.attempts" [value]="retake.try">{{retake.label}}</ion-option>
|
||||
</ion-select>
|
||||
</ion-item>
|
||||
|
|
|
@ -81,7 +81,7 @@
|
|||
<ion-list>
|
||||
<ion-item text-wrap *ngIf="organizations.length > 1">
|
||||
<ion-label>{{ 'addon.mod_scorm.organizations' | translate }}</ion-label>
|
||||
<ion-select [(ngModel)]="currentOrganization.identifier" (ionChange)="loadOrganization()" interface="popover">
|
||||
<ion-select [(ngModel)]="currentOrganization.identifier" (ionChange)="loadOrganization()" interface="action-sheet">
|
||||
<ion-option *ngFor="let org of organizations" [value]="org.identifier">{{ org.title }}</ion-option>
|
||||
</ion-select>
|
||||
</ion-item>
|
||||
|
|
|
@ -64,7 +64,7 @@
|
|||
<ion-radio [value]="value + 1" [attr.aria-labelledby]="'addon-mod_survey-'+question.name"></ion-radio>
|
||||
</ion-col>
|
||||
<ion-col class="hidden-tablet">
|
||||
<ion-select padding [(ngModel)]="answers[question.name]" [attr.aria-labelledby]="'addon-mod_survey-'+question.name" interface="popover" [required]="question.required">
|
||||
<ion-select padding [(ngModel)]="answers[question.name]" [attr.aria-labelledby]="'addon-mod_survey-'+question.name" interface="action-sheet" [required]="question.required">
|
||||
<ion-option value="-1" selected disabled>{{ 'core.choose' | translate }}</ion-option>
|
||||
<ion-option *ngFor="let option of question.options; let value=index;" [value]="value +1">{{option}}</ion-option>
|
||||
</ion-select>
|
||||
|
@ -80,7 +80,7 @@
|
|||
<ion-label [core-mark-required]="question.required" padding-horizontal id="addon-mod_survey-{{question.name}}"><strong>{{question.num}}.</strong> {{ question.text }}</ion-label>
|
||||
</ion-col>
|
||||
<ion-col col-5>
|
||||
<ion-select padding [(ngModel)]="answers[question.name]" [attr.aria-labelledby]="'addon-mod_survey-'+question.name" interface="popover" [required]="question.required">
|
||||
<ion-select padding [(ngModel)]="answers[question.name]" [attr.aria-labelledby]="'addon-mod_survey-'+question.name" interface="action-sheet" [required]="question.required">
|
||||
<ion-option *ngFor="let option of question.options; let value=index;" [value]="value">{{option}}</ion-option>
|
||||
</ion-select>
|
||||
</ion-col>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
</ion-item>
|
||||
<ion-item *ngIf="edit && field.grades">
|
||||
<ion-label [core-mark-required]="true" stacked>{{ 'addon.mod_workshop_assessment_accumulative.dimensiongradefor' | translate : {'$a': field.dimtitle } }}</ion-label>
|
||||
<ion-select [(ngModel)]="selectedValues[n].grade" interface="popover">
|
||||
<ion-select [(ngModel)]="selectedValues[n].grade" interface="action-sheet">
|
||||
<ion-option *ngFor="let grade of field.grades" [value]="grade.value">{{grade.label}}</ion-option>
|
||||
</ion-select>
|
||||
<core-input-errors item-content *ngIf="fieldErrors['grade_' + n]" [errorText]="fieldErrors['grade_' + n]"></core-input-errors>
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
[maxSubmissions]="workshop.overallfeedbackfiles" [component]="component" [componentId]="componentId" [allowOffline]="true"></core-attachments>
|
||||
<ion-item *ngIf="edit && access && access.canallocate">
|
||||
<ion-label stacked [core-mark-required]="true">{{ 'addon.mod_workshop.assessmentweight' | translate }}</ion-label>
|
||||
<ion-select [(ngModel)]="weight" interface="popover">
|
||||
<ion-select [(ngModel)]="weight" interface="action-sheet">
|
||||
<ion-option *ngFor="let w of weights" [value]="w">{{w}}</ion-option>
|
||||
</ion-select>
|
||||
</ion-item>
|
||||
|
|
|
@ -143,7 +143,7 @@
|
|||
<ion-item text-wrap *ngIf="groupInfo && (groupInfo.separateGroups || groupInfo.visibleGroups)">
|
||||
<ion-label id="addon-workshop-groupslabel" *ngIf="groupInfo.separateGroups">{{ 'core.groupsseparate' | translate }}</ion-label>
|
||||
<ion-label id="addon-workshop-groupslabel" *ngIf="groupInfo.visibleGroups">{{ 'core.groupsvisible' | translate }}</ion-label>
|
||||
<ion-select [(ngModel)]="selectedGroup" (ionChange)="setGroup(selectedGroup)" aria-labelledby="addon-workshop-groupslabel" interface="popover">
|
||||
<ion-select [(ngModel)]="selectedGroup" (ionChange)="setGroup(selectedGroup)" aria-labelledby="addon-workshop-groupslabel" interface="action-sheet">
|
||||
<ion-option *ngFor="let groupOpt of groupInfo.groups" [value]="groupOpt.id">{{groupOpt.name}}</ion-option>
|
||||
</ion-select>
|
||||
</ion-item>
|
||||
|
|
|
@ -44,7 +44,7 @@
|
|||
</ion-item>
|
||||
<ion-item text-wrap *ngIf="access.canallocate">
|
||||
<ion-label stacked core-mark-required="true">{{ 'addon.mod_workshop.assessmentweight' | translate }}</ion-label>
|
||||
<ion-select formControlName="weight" required="true" interface="popover">
|
||||
<ion-select formControlName="weight" required="true" interface="action-sheet">
|
||||
<ion-option *ngFor="let w of weights" [value]="w">{{ w }}</ion-option>
|
||||
</ion-select>
|
||||
</ion-item>
|
||||
|
@ -54,7 +54,7 @@
|
|||
</ion-item>
|
||||
<ion-item text-wrap *ngIf="access.canoverridegrades">
|
||||
<ion-label stacked>{{ 'addon.mod_workshop.gradinggradeover' | translate }}</ion-label>
|
||||
<ion-select formControlName="grade" interface="popover">
|
||||
<ion-select formControlName="grade" interface="action-sheet">
|
||||
<ion-option *ngFor="let grade of evaluationGrades" [value]="grade.value">{{grade.label}}</ion-option>
|
||||
</ion-select>
|
||||
</ion-item>
|
||||
|
|
|
@ -81,7 +81,7 @@
|
|||
</ion-item>
|
||||
<ion-item text-wrap>
|
||||
<ion-label stacked>{{ 'addon.mod_workshop.gradeover' | translate }}</ion-label>
|
||||
<ion-select formControlName="grade" interface="popover">
|
||||
<ion-select formControlName="grade" interface="action-sheet">
|
||||
<ion-option *ngFor="let grade of evaluationGrades" [value]="grade.value">{{grade.label}}</ion-option>
|
||||
</ion-select>
|
||||
</ion-item>
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
|
||||
<!-- Show processor selector. -->
|
||||
<div padding class="safe-padding-horizontal">
|
||||
<ion-select *ngIf="preferences && preferences.processors && preferences.processors.length > 0" [ngModel]="currentProcessor.name" (ngModelChange)="changeProcessor($event)" interface="popover" class="core-button-select">
|
||||
<ion-select *ngIf="preferences && preferences.processors && preferences.processors.length > 0" [ngModel]="currentProcessor.name" (ngModelChange)="changeProcessor($event)" interface="action-sheet" class="core-button-select">
|
||||
<ion-option *ngFor="let processor of preferences.processors" [value]="processor.name">{{ processor.displayname }}</ion-option>
|
||||
</ion-select>
|
||||
</div>
|
||||
|
|
|
@ -40,7 +40,7 @@
|
|||
<ng-template #selectUnits>
|
||||
<ion-col>
|
||||
<label *ngIf="question.select.accessibilityLabel" class="accesshide" for="{{question.select.id}}">{{ question.select.accessibilityLabel }}</label>
|
||||
<ion-select id="{{question.select.id}}" [name]="question.select.name" [(ngModel)]="question.select.selected" interface="popover" [disabled]="question.select.disabled">
|
||||
<ion-select id="{{question.select.id}}" [name]="question.select.name" [(ngModel)]="question.select.selected" interface="action-sheet" [disabled]="question.select.disabled">
|
||||
<ion-option *ngFor="let option of question.select.options" [value]="option.value">{{option.label}}</ion-option>
|
||||
</ion-select>
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</ion-col>
|
||||
<ion-col [ngClass]='{"core-question-answer-correct": row.isCorrect === 1, "core-question-answer-incorrect": row.isCorrect === 0}'>
|
||||
<label class="accesshide" for="{{row.id}}" *ngIf="row.accessibilityLabel">{{ row.accessibilityLabel }}</label>
|
||||
<ion-select id="{{row.id}}" [name]="row.name" [attr.aria-labelledby]="'addon-qtype-match-question-' + row.id" [(ngModel)]="row.selected" interface="popover">
|
||||
<ion-select id="{{row.id}}" [name]="row.name" [attr.aria-labelledby]="'addon-qtype-match-question-' + row.id" [(ngModel)]="row.selected" interface="action-sheet">
|
||||
<ion-option *ngFor="let option of row.options" [value]="option.value">{{option.label}}</ion-option>
|
||||
</ion-select>
|
||||
|
||||
|
|
|
@ -61,7 +61,9 @@ export class AddonRemoteThemesProvider {
|
|||
hash: ''
|
||||
};
|
||||
|
||||
return this.load(siteId, true);
|
||||
return this.load(siteId, true).catch((error) => {
|
||||
this.logger.error('Error loading site after site init', error);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -102,7 +102,9 @@ export class AddonRemoteThemesModule {
|
|||
|
||||
// Load temporary styles when site config is checked in login.
|
||||
eventsProvider.on(CoreEventsProvider.LOGIN_SITE_CHECKED, (data) => {
|
||||
remoteThemesProvider.loadTmpStyles(data.config.mobilecssurl);
|
||||
remoteThemesProvider.loadTmpStyles(data.config.mobilecssurl).catch((error) => {
|
||||
logger.error('Error loading tmp styles', error);
|
||||
});
|
||||
});
|
||||
|
||||
// Unload temporary styles when site config is "unchecked" in login.
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<!-- Edit. -->
|
||||
<ion-item *ngIf="edit && field && field.shortname" text-wrap [formGroup]="form">
|
||||
<ion-label stacked [core-mark-required]="field.required">{{ field.name }}</ion-label>
|
||||
<ion-select [formControlName]="field.modelName" [placeholder]="'core.choosedots' | translate" interface="popover">
|
||||
<ion-select [formControlName]="field.modelName" [placeholder]="'core.choosedots' | translate" interface="action-sheet">
|
||||
<ion-option value="">{{ 'core.choosedots' | translate }}</ion-option>
|
||||
<ion-option *ngFor="let option of field.options" [value]="option">{{option}}</ion-option>
|
||||
</ion-select>
|
||||
|
|
|
@ -55,4 +55,29 @@ ion-app.app-root.md {
|
|||
.card-md.with-borders .item-md:last-child .item-inner {
|
||||
border-bottom: 0;
|
||||
}
|
||||
|
||||
.action-sheet-md {
|
||||
.action-sheet-title,
|
||||
.action-sheet-container > .action-sheet-group:first-child {
|
||||
box-shadow: 0 3px 5px $gray;
|
||||
}
|
||||
|
||||
.action-sheet-title {
|
||||
padding-top: 0;
|
||||
margin-top: $action-sheet-md-title-padding-top;
|
||||
}
|
||||
.action-sheet-cancel {
|
||||
color: $red;
|
||||
}
|
||||
|
||||
.action-sheet-wrapper {
|
||||
bottom: 0;
|
||||
top: initial;
|
||||
max-height: 50%;
|
||||
height: 100%;
|
||||
}
|
||||
.action-sheet-selected {
|
||||
color: $core-color;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
<ion-item>
|
||||
<ion-label>{{ 'core.site' | translate }}</ion-label>
|
||||
<ion-select [(ngModel)]="selectedSite" (ngModelChange)="siteSelected.emit(selectedSite)" interface="popover">
|
||||
<ion-select [(ngModel)]="selectedSite" (ngModelChange)="siteSelected.emit(selectedSite)" interface="action-sheet">
|
||||
<ion-option *ngFor="let site of sites" [value]="site.id">{{ site.fullNameAndSiteName }}</ion-option>
|
||||
</ion-select>
|
||||
</ion-item>
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
|
||||
<ion-item *ngIf="fixedSites && fixedDisplay == 'select'" margin-vertical text-wrap>
|
||||
<ion-label stacked for="siteSelect">{{ 'core.login.selectsite' | translate }}</ion-label>
|
||||
<ion-select formControlName="siteUrl" name="url" placeholder="{{ 'core.login.siteaddress' | translate }}" interface="popover">
|
||||
<ion-select formControlName="siteUrl" name="url" placeholder="{{ 'core.login.siteaddress' | translate }}" interface="action-sheet">
|
||||
<ion-option *ngFor="let site of fixedSites" [value]="site.url">{{site.name}}</ion-option>
|
||||
</ion-select>
|
||||
</ion-item>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<ion-content>
|
||||
<ion-item text-wrap>
|
||||
<ion-label><h2>{{ 'core.settings.language' | translate }}</h2></ion-label>
|
||||
<ion-select [(ngModel)]="selectedLanguage" (ngModelChange)="languageChanged()" interface="popover">
|
||||
<ion-select [(ngModel)]="selectedLanguage" (ngModelChange)="languageChanged()" interface="action-sheet">
|
||||
<ion-option *ngFor="let code of languageCodes" [value]="code">{{ languages[code] }}</ion-option>
|
||||
</ion-select>
|
||||
</ion-item>
|
||||
|
|
|
@ -79,9 +79,9 @@ export class CoreFileProvider {
|
|||
return this.platform.ready().then(() => {
|
||||
|
||||
if (this.platform.is('android')) {
|
||||
this.basePath = this.file.externalApplicationStorageDirectory;
|
||||
this.basePath = this.file.externalApplicationStorageDirectory || this.basePath;
|
||||
} else if (this.platform.is('ios')) {
|
||||
this.basePath = this.file.documentsDirectory;
|
||||
this.basePath = this.file.documentsDirectory || this.basePath;
|
||||
} else if (!this.isAvailable() || this.basePath === '') {
|
||||
this.logger.error('Error getting device OS.');
|
||||
|
||||
|
@ -453,7 +453,7 @@ export class CoreFileProvider {
|
|||
};
|
||||
setTimeout(() => {
|
||||
if (!hasStarted) {
|
||||
reject();
|
||||
reject('Upload cannot start.');
|
||||
}
|
||||
}, 3000);
|
||||
|
||||
|
|
|
@ -113,6 +113,12 @@ $refresher-icon-color: $core-color !default;
|
|||
|
||||
$core-online-color: #5cb85c;
|
||||
|
||||
$core-select-placeholder-color: $core-color !default;
|
||||
$item-avatar-size: 54px !default;
|
||||
$input-select-opacity: .5 !default;
|
||||
$note-color: $gray-dark !default;
|
||||
$popover-width: 280px !default;
|
||||
|
||||
|
||||
// Moodle Mobile variables
|
||||
// --------------------------------------------------
|
||||
|
@ -137,14 +143,13 @@ $core-login-box-background-border: $gray !default;
|
|||
$core-login-box-text-color: $text-color !default;
|
||||
$core-login-button-outline: false !default;
|
||||
$core-login-loading-color: false !default;
|
||||
$core-select-placeholder-color: $core-color;
|
||||
|
||||
// App iOS Variables
|
||||
// --------------------------------------------------
|
||||
// iOS only Sass variables can go here
|
||||
|
||||
$text-input-ios-show-focus-highlight: false;
|
||||
$item-ios-avatar-size: 54px;
|
||||
$item-ios-avatar-size: $item-avatar-size;
|
||||
$loading-ios-spinner-color: $core-loading-spinner-color;
|
||||
$spinner-ios-ios-color: $core-spinner-color;
|
||||
$tabs-ios-tab-color-inactive: $tabs-tab-color-inactive;
|
||||
|
@ -152,10 +157,11 @@ $button-ios-outline-background-color: $core-button-outline-background-color;
|
|||
$toolbar-ios-height: 44px + 8; // Avoid toolbar with different heights.
|
||||
$checkbox-ios-icon-border-radius: 0px !default;
|
||||
$select-ios-placeholder-color: $core-select-placeholder-color;
|
||||
$radio-ios-disabled-opacity: .5 !default;
|
||||
$checkbox-ios-disabled-opacity: .5 !default;
|
||||
$toggle-ios-disabled-opacity: .5 !default;
|
||||
$note-ios-color: $gray-dark;
|
||||
$radio-ios-disabled-opacity: $input-select-opacity !default;
|
||||
$checkbox-ios-disabled-opacity: $input-select-opacity !default;
|
||||
$toggle-ios-disabled-opacity: $input-select-opacity !default;
|
||||
$note-ios-color: $note-color;
|
||||
$popover-ios-width: $popover-width;
|
||||
|
||||
// App Material Design Variables
|
||||
// --------------------------------------------------
|
||||
|
@ -163,7 +169,7 @@ $note-ios-color: $gray-dark;
|
|||
|
||||
$text-input-md-show-focus-highlight: true;
|
||||
$item-md-detail-push-show: true;
|
||||
$item-md-avatar-size: 54px;
|
||||
$item-md-avatar-size: $item-avatar-size;
|
||||
$loading-md-spinner-color: $core-loading-spinner-color;
|
||||
$spinner-md-crescent-color: $core-spinner-color;
|
||||
$tabs-md-tab-color-inactive: $tabs-tab-color-inactive;
|
||||
|
@ -171,10 +177,12 @@ $button-md-outline-background-color: $core-button-outline-background-color;
|
|||
$font-family-md-base: "Roboto", "Noto Sans", "Helvetica Neue", sans-serif !default;
|
||||
$select-md-placeholder-color: $core-select-placeholder-color;
|
||||
$label-md-text-color: $text-color !default;
|
||||
$radio-md-disabled-opacity: .5 !default;
|
||||
$checkbox-md-disabled-opacity: .5 !default;
|
||||
$toggle-md-disabled-opacity: .5 !default;
|
||||
$note-md-color: $gray-dark;
|
||||
$radio-md-disabled-opacity: $input-select-opacity !default;
|
||||
$checkbox-md-disabled-opacity: $input-select-opacity !default;
|
||||
$toggle-md-disabled-opacity: $input-select-opacity !default;
|
||||
$note-md-color: $note-color;
|
||||
$popover-md-width: $popover-width;
|
||||
$action-sheet-md-title-color: $core-color;
|
||||
|
||||
// App Windows Variables
|
||||
// --------------------------------------------------
|
||||
|
@ -182,17 +190,18 @@ $note-md-color: $gray-dark;
|
|||
|
||||
$text-input-wp-show-focus-highlight: true;
|
||||
$item-wp-detail-push-show: true;
|
||||
$item-wp-avatar-size: 54px;
|
||||
$item-wp-avatar-size: $item-avatar-size;
|
||||
$loading-wp-spinner-color: $core-loading-spinner-color;
|
||||
$spinner-wp-circles-color: $core-spinner-color;
|
||||
$tabs-wp-tab-color-inactive: $tabs-tab-color-inactive;
|
||||
$button-wp-outline-background-color: $core-button-outline-background-color;
|
||||
$select-wp-placeholder-color: $core-select-placeholder-color;
|
||||
$label-wp-text-color: $text-color !default;
|
||||
$radio-wp-disabled-opacity: .5 !default;
|
||||
$checkbox-wp-disabled-opacity: .5 !default;
|
||||
$toggle-wp-disabled-opacity: .5 !default;
|
||||
$note-wp-color: $gray-dark;
|
||||
$radio-wp-disabled-opacity: $input-select-opacity !default;
|
||||
$checkbox-wp-disabled-opacity: $input-select-opacity !default;
|
||||
$toggle-wp-disabled-opacity: $input-select-opacity !default;
|
||||
$note-wp-color: $note-color;
|
||||
$popover-wp-width: $popover-width;
|
||||
|
||||
// App Theme
|
||||
// --------------------------------------------------
|
||||
|
|
Loading…
Reference in New Issue