commit
6e8b3ca476
|
@ -1,19 +1,7 @@
|
||||||
ion-app.app-root core-courses-course-progress {
|
ion-app.app-root core-courses-course-progress {
|
||||||
|
|
||||||
.core-course-module-handler.item-md.item-block .item-inner {
|
.core-course-module-handler.item {
|
||||||
border-bottom: 1px solid $list-md-border-color;
|
@include core-items();
|
||||||
}
|
|
||||||
|
|
||||||
.core-course-module-handler.item-ios.item-block .item-inner {
|
|
||||||
border-bottom: $hairlines-width solid $list-ios-border-color;
|
|
||||||
}
|
|
||||||
|
|
||||||
.core-course-module-handler.item-wp.item-block .item-inner {
|
|
||||||
border-bottom: 1px solid $list-wp-border-color;
|
|
||||||
}
|
|
||||||
|
|
||||||
.core-course-module-handler.item:last-child .item-inner {
|
|
||||||
border-bottom: 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.core-course-module-handler.item .item-heading:first-child {
|
.core-course-module-handler.item .item-heading:first-child {
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
</ion-select>
|
</ion-select>
|
||||||
</ion-item>
|
</ion-item>
|
||||||
|
|
||||||
<div class="addon-data-contents {{cssClass}}">
|
<div class="addon-data-contents {{cssClass}}" *ngIf="entry">
|
||||||
<style *ngIf="cssTemplate">
|
<style *ngIf="cssTemplate">
|
||||||
{{ cssTemplate }}
|
{{ cssTemplate }}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -215,6 +215,7 @@ export class AddonModDataEntryPage implements OnDestroy {
|
||||||
*/
|
*/
|
||||||
gotoEntry(entry: number): Promise<any> {
|
gotoEntry(entry: number): Promise<any> {
|
||||||
this.entryId = entry;
|
this.entryId = entry;
|
||||||
|
this.entry = null;
|
||||||
this.page = null;
|
this.page = null;
|
||||||
this.entryLoaded = false;
|
this.entryLoaded = false;
|
||||||
|
|
||||||
|
|
|
@ -1,35 +1,4 @@
|
||||||
ion-app.app-root addon-mod-workshop-assessment {
|
ion-app.app-root addon-mod-workshop-assessment,
|
||||||
.item-md.item-block .item-inner {
|
|
||||||
border-bottom: 1px solid $list-md-border-color;
|
|
||||||
}
|
|
||||||
|
|
||||||
.item-ios.item-block .item-inner {
|
|
||||||
border-bottom: $hairlines-width solid $list-ios-border-color;
|
|
||||||
}
|
|
||||||
|
|
||||||
.item-wp.item-block .item-inner {
|
|
||||||
border-bottom: 1px solid $list-wp-border-color;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:last-child .item .item-inner {
|
|
||||||
border-bottom: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ion-app.app-root .card.with-borders addon-mod-workshop-assessment {
|
ion-app.app-root .card.with-borders addon-mod-workshop-assessment {
|
||||||
.item-md.item-block .item-inner {
|
@include core-as-items();
|
||||||
border-bottom: 1px solid $list-md-border-color;
|
|
||||||
}
|
|
||||||
|
|
||||||
.item-ios.item-block .item-inner {
|
|
||||||
border-bottom: $hairlines-width solid $list-ios-border-color;
|
|
||||||
}
|
|
||||||
|
|
||||||
.item-wp.item-block .item-inner {
|
|
||||||
border-bottom: 1px solid $list-wp-border-color;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:last-child .item .item-inner {
|
|
||||||
border-bottom: 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
|
@ -1,35 +1,4 @@
|
||||||
ion-app.app-root addon-mod-workshop-submission {
|
ion-app.app-root addon-mod-workshop-submission,
|
||||||
.item-md.item-block .item-inner {
|
|
||||||
border-bottom: 1px solid $list-md-border-color;
|
|
||||||
}
|
|
||||||
|
|
||||||
.item-ios.item-block .item-inner {
|
|
||||||
border-bottom: $hairlines-width solid $list-ios-border-color;
|
|
||||||
}
|
|
||||||
|
|
||||||
.item-wp.item-block .item-inner {
|
|
||||||
border-bottom: 1px solid $list-wp-border-color;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:last-child .item .item-inner {
|
|
||||||
border-bottom: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ion-app.app-root .card.with-borders addon-mod-workshop-submission {
|
ion-app.app-root .card.with-borders addon-mod-workshop-submission {
|
||||||
.item-md.item-block .item-inner {
|
@include core-as-items();
|
||||||
border-bottom: 1px solid $list-md-border-color;
|
|
||||||
}
|
|
||||||
|
|
||||||
.item-ios.item-block .item-inner {
|
|
||||||
border-bottom: $hairlines-width solid $list-ios-border-color;
|
|
||||||
}
|
|
||||||
|
|
||||||
.item-wp.item-block .item-inner {
|
|
||||||
border-bottom: 1px solid $list-wp-border-color;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:last-child .item .item-inner {
|
|
||||||
border-bottom: 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
|
@ -297,13 +297,13 @@ export class AddonModWorkshopPrefetchHandler extends CoreCourseActivityPrefetchH
|
||||||
userIds.push(grade.userid);
|
userIds.push(grade.userid);
|
||||||
userIds.push(grade.gradeoverby);
|
userIds.push(grade.gradeoverby);
|
||||||
|
|
||||||
grade.reviewedby.forEach((assessment) => {
|
grade.reviewedby && grade.reviewedby.forEach((assessment) => {
|
||||||
userIds.push(assessment.userid);
|
userIds.push(assessment.userid);
|
||||||
userIds.push(assessment.gradinggradeoverby);
|
userIds.push(assessment.gradinggradeoverby);
|
||||||
assessments[assessment.assessmentid] = assessment;
|
assessments[assessment.assessmentid] = assessment;
|
||||||
});
|
});
|
||||||
|
|
||||||
grade.reviewerof.forEach((assessment) => {
|
grade.reviewerof && grade.reviewerof.forEach((assessment) => {
|
||||||
userIds.push(assessment.userid);
|
userIds.push(assessment.userid);
|
||||||
userIds.push(assessment.gradinggradeoverby);
|
userIds.push(assessment.gradinggradeoverby);
|
||||||
assessments[assessment.assessmentid] = assessment;
|
assessments[assessment.assessmentid] = assessment;
|
||||||
|
|
|
@ -70,15 +70,6 @@ ion-app.app-root.ios {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Recover borders on items inside cards.
|
|
||||||
.card-ios.with-borders .item-ios.item-block .item-inner {
|
|
||||||
border-bottom: $hairlines-width solid $list-ios-border-color;
|
|
||||||
}
|
|
||||||
.card-ios.with-borders .item-ios:last-child .item-inner {
|
|
||||||
border-bottom: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.radio-ios .radio-icon {
|
.radio-ios .radio-icon {
|
||||||
@include position(0, null, null, 0);
|
@include position(0, null, null, 0);
|
||||||
@include margin(0);
|
@include margin(0);
|
||||||
|
|
|
@ -48,14 +48,6 @@ ion-app.app-root.md {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Recover borders on items inside cards.
|
|
||||||
.card-md.with-borders .item-md.item-block .item-inner {
|
|
||||||
border-bottom: 1px solid $list-md-border-color;
|
|
||||||
}
|
|
||||||
.card-md.with-borders .item-md:last-child .item-inner {
|
|
||||||
border-bottom: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.action-sheet-md {
|
.action-sheet-md {
|
||||||
.action-sheet-title,
|
.action-sheet-title,
|
||||||
.action-sheet-container > .action-sheet-group:first-child {
|
.action-sheet-container > .action-sheet-group:first-child {
|
||||||
|
|
|
@ -96,6 +96,16 @@ ion-app.app-root {
|
||||||
border: 0;
|
border: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Recover borders on items inside cards.
|
||||||
|
.card.with-borders .core-as-item,
|
||||||
|
.core-as-item {
|
||||||
|
@include core-as-items();
|
||||||
|
}
|
||||||
|
|
||||||
|
.card.with-borders .item {
|
||||||
|
@include core-items();
|
||||||
|
}
|
||||||
|
|
||||||
.core-oauth-icon, .item.core-oauth-icon, .list .item.core-oauth-icon {
|
.core-oauth-icon, .item.core-oauth-icon, .list .item.core-oauth-icon {
|
||||||
min-height: 32px;
|
min-height: 32px;
|
||||||
img, .label {
|
img, .label {
|
||||||
|
@ -842,7 +852,6 @@ ion-app.app-root {
|
||||||
|
|
||||||
core-loading {
|
core-loading {
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
position: relative !important;
|
|
||||||
|
|
||||||
.core-loading-content {
|
.core-loading-content {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
|
|
@ -47,12 +47,4 @@ ion-app.app-root.wp {
|
||||||
@include padding(null, null, null, 15px * $i + $item-wp-padding-start);
|
@include padding(null, null, null, 15px * $i + $item-wp-padding-start);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Recover borders on items inside cards.
|
|
||||||
.card-wp.with-borders .item-wp.item-block .item-inner {
|
|
||||||
border-bottom: 1px solid $list-wp-border-color;
|
|
||||||
}
|
|
||||||
.card-wp.with-borders .item-wp:last-child .item-inner {
|
|
||||||
border-bottom: 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
|
@ -13,4 +13,8 @@ ion-app.app-root {
|
||||||
core-file + core-file > .item-wp.item-block > .item-inner {
|
core-file + core-file > .item-wp.item-block > .item-inner {
|
||||||
border-top: 1px solid $list-wp-border-color;
|
border-top: 1px solid $list-wp-border-color;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
core-file > .item.item-block > .item-inner {
|
||||||
|
border-bottom: 0;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -5,7 +5,7 @@
|
||||||
<ion-icon *ngIf="showPrevButton" name="arrow-back" md="ios-arrow-back"></ion-icon>
|
<ion-icon *ngIf="showPrevButton" name="arrow-back" md="ios-arrow-back"></ion-icon>
|
||||||
</ion-col>
|
</ion-col>
|
||||||
<ion-col no-padding col-10>
|
<ion-col no-padding col-10>
|
||||||
<ion-slides (ionSlideDidChange)="slideChanged()" [slidesPerView]="slidesShown">
|
<ion-slides (ionSlideDidChange)="slideChanged()" [slidesPerView]="slidesShown" [dir]="direction">
|
||||||
<ng-container *ngFor="let tab of tabs; let idx = index">
|
<ng-container *ngFor="let tab of tabs; let idx = index">
|
||||||
<ion-slide *ngIf="tab.show">
|
<ion-slide *ngIf="tab.show">
|
||||||
<a [attr.aria-selected]="selected == idx" (click)="selectTab(idx)" class="tab-slide">
|
<a [attr.aria-selected]="selected == idx" (click)="selectTab(idx)" class="tab-slide">
|
||||||
|
|
|
@ -62,18 +62,6 @@ ion-app.app-root .core-tabs-bar {
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@include rtl() {
|
|
||||||
.swiper-container-horizontal {
|
|
||||||
transform: scaleX(-1);
|
|
||||||
.swiper-wrapper {
|
|
||||||
flex-direction: row-reverse;
|
|
||||||
ion-slide {
|
|
||||||
transform: scaleX(-1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ion-app.app-root.md .core-tabs-bar a.tab-slide {
|
ion-app.app-root.md .core-tabs-bar a.tab-slide {
|
||||||
|
|
|
@ -16,7 +16,9 @@ import {
|
||||||
Component, Input, Output, EventEmitter, OnInit, OnChanges, OnDestroy, AfterViewInit, ViewChild, ElementRef,
|
Component, Input, Output, EventEmitter, OnInit, OnChanges, OnDestroy, AfterViewInit, ViewChild, ElementRef,
|
||||||
SimpleChange
|
SimpleChange
|
||||||
} from '@angular/core';
|
} from '@angular/core';
|
||||||
import { Content, Slides } from 'ionic-angular';
|
import { Content, Slides, Platform } from 'ionic-angular';
|
||||||
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
|
import { Subscription } from 'rxjs';
|
||||||
import { CoreDomUtilsProvider } from '@providers/utils/dom';
|
import { CoreDomUtilsProvider } from '@providers/utils/dom';
|
||||||
import { CoreAppProvider } from '@providers/app';
|
import { CoreAppProvider } from '@providers/app';
|
||||||
import { CoreTabComponent } from './tab';
|
import { CoreTabComponent } from './tab';
|
||||||
|
@ -59,6 +61,7 @@ export class CoreTabsComponent implements OnInit, AfterViewInit, OnChanges, OnDe
|
||||||
maxSlides = 3;
|
maxSlides = 3;
|
||||||
slidesShown = this.maxSlides;
|
slidesShown = this.maxSlides;
|
||||||
numTabsShown = 0;
|
numTabsShown = 0;
|
||||||
|
direction = 'ltr';
|
||||||
|
|
||||||
protected originalTabsContainer: HTMLElement; // The container of the original tabs. It will include each tab's content.
|
protected originalTabsContainer: HTMLElement; // The container of the original tabs. It will include each tab's content.
|
||||||
protected initialized = false;
|
protected initialized = false;
|
||||||
|
@ -77,10 +80,20 @@ export class CoreTabsComponent implements OnInit, AfterViewInit, OnChanges, OnDe
|
||||||
|
|
||||||
protected firstSelectedTab: number;
|
protected firstSelectedTab: number;
|
||||||
protected unregisterBackButtonAction: any;
|
protected unregisterBackButtonAction: any;
|
||||||
|
protected languageChangedSubscription: Subscription;
|
||||||
|
|
||||||
constructor(element: ElementRef, protected content: Content, protected domUtils: CoreDomUtilsProvider,
|
constructor(element: ElementRef, protected content: Content, protected domUtils: CoreDomUtilsProvider,
|
||||||
protected appProvider: CoreAppProvider) {
|
protected appProvider: CoreAppProvider, platform: Platform, translate: TranslateService) {
|
||||||
this.tabBarElement = element.nativeElement;
|
this.tabBarElement = element.nativeElement;
|
||||||
|
|
||||||
|
this.direction = platform.isRTL ? 'rtl' : 'ltr';
|
||||||
|
|
||||||
|
// Change the side when the language changes.
|
||||||
|
this.languageChangedSubscription = translate.onLangChange.subscribe((event: any) => {
|
||||||
|
setTimeout(() => {
|
||||||
|
this.direction = platform.isRTL ? 'rtl' : 'ltr';
|
||||||
|
});
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1034,6 +1034,9 @@ export class CoreDomUtilsProvider {
|
||||||
if (error.backtrace) {
|
if (error.backtrace) {
|
||||||
extraInfo += '<br><br>' + this.textUtils.replaceNewLines(this.textUtils.escapeHTML(error.backtrace), '<br>');
|
extraInfo += '<br><br>' + this.textUtils.replaceNewLines(this.textUtils.escapeHTML(error.backtrace), '<br>');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// tslint:disable-next-line
|
||||||
|
console.error(error);
|
||||||
}
|
}
|
||||||
|
|
||||||
// We received an object instead of a string. Search for common properties.
|
// We received an object instead of a string. Search for common properties.
|
||||||
|
|
|
@ -433,6 +433,42 @@ $core-question-state-incorrect-color: $red-light !default;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@mixin core-as-items() {
|
||||||
|
.item-md.item-block > .item-inner {
|
||||||
|
border-bottom: 1px solid $list-md-border-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item-ios.item-block > .item-inner {
|
||||||
|
border-bottom: $hairlines-width solid $list-ios-border-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item-wp.item-block > .item-inner {
|
||||||
|
border-bottom: 1px solid $list-wp-border-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:last-child .item > .item-inner {
|
||||||
|
border-bottom: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin core-items() {
|
||||||
|
&.item-md.item-block > .item-inner {
|
||||||
|
border-bottom: 1px solid $list-md-border-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.item-ios.item-block > .item-inner {
|
||||||
|
border-bottom: $hairlines-width solid $list-ios-border-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.item-wp.item-block > .item-inner {
|
||||||
|
border-bottom: 1px solid $list-wp-border-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:last-child > .item-inner {
|
||||||
|
border-bottom: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Font Awesome
|
// Font Awesome
|
||||||
$fa-font-path: $font-path;
|
$fa-font-path: $font-path;
|
||||||
@import "font-awesome";
|
@import "font-awesome";
|
||||||
|
|
Loading…
Reference in New Issue