commit
7a2c27fe57
|
@ -310,7 +310,7 @@ function array_contains {
|
||||||
|
|
||||||
|
|
||||||
print_title 'Generating language from code...'
|
print_title 'Generating language from code...'
|
||||||
gulp lang
|
npx gulp lang
|
||||||
|
|
||||||
print_title 'Getting languages'
|
print_title 'Getting languages'
|
||||||
|
|
||||||
|
|
|
@ -10,8 +10,9 @@ DEFAULT_LASTVERSION='4.0'
|
||||||
|
|
||||||
# Checks if AWS is available and configured.
|
# Checks if AWS is available and configured.
|
||||||
function check_aws {
|
function check_aws {
|
||||||
aws --version &> /dev/null
|
|
||||||
AWS_SERVICE=1
|
AWS_SERVICE=1
|
||||||
|
|
||||||
|
aws --version &> /dev/null
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
AWS_SERVICE=0
|
AWS_SERVICE=0
|
||||||
echo 'AWS not installed. Check https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html for more info.'
|
echo 'AWS not installed. Check https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html for more info.'
|
||||||
|
@ -19,7 +20,7 @@ function check_aws {
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# In order to login to AWS, use credentials file or AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY vars.
|
# In order to login to AWS, use credentials file or AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY vars.
|
||||||
if [ ! -f ~/.aws/credentials ] && [ [ -z $AWS_ACCESS_KEY_ID ] || [ -z $AWS_SECRET_ACCESS_KEY ] ]; then
|
if [ ! -f ~/.aws/credentials ] && ([ -z "$AWS_ACCESS_KEY_ID" ] || [ -z "$AWS_SECRET_ACCESS_KEY" ]); then
|
||||||
AWS_SERVICE=0
|
AWS_SERVICE=0
|
||||||
lastversion=$DEFAULT_LASTVERSION
|
lastversion=$DEFAULT_LASTVERSION
|
||||||
echo 'AWS Cannot authenticate. Use aws configure or set the proper env vars.'
|
echo 'AWS Cannot authenticate. Use aws configure or set the proper env vars.'
|
||||||
|
@ -63,6 +64,13 @@ function get_last_version {
|
||||||
lastversion=$DEFAULT_LASTVERSION
|
lastversion=$DEFAULT_LASTVERSION
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Create langfolder
|
||||||
|
function create_langfolder {
|
||||||
|
if [ ! -d $LANGPACKSFOLDER ]; then
|
||||||
|
mkdir $LANGPACKSFOLDER
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# Get all language list from AWS.
|
# Get all language list from AWS.
|
||||||
function get_all_languages_aws {
|
function get_all_languages_aws {
|
||||||
langsfiles=`aws s3 ls s3://$BUCKET/$lastversion/`
|
langsfiles=`aws s3 ls s3://$BUCKET/$lastversion/`
|
||||||
|
@ -87,6 +95,8 @@ function get_language {
|
||||||
|
|
||||||
get_last_version
|
get_last_version
|
||||||
|
|
||||||
|
create_langfolder
|
||||||
|
|
||||||
echo "Getting $lang language"
|
echo "Getting $lang language"
|
||||||
|
|
||||||
pushd $LANGPACKSFOLDER > /dev/null
|
pushd $LANGPACKSFOLDER > /dev/null
|
||||||
|
@ -115,7 +125,7 @@ function get_languages {
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
mkdir $LANGPACKSFOLDER
|
create_langfolder
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -34,8 +34,6 @@ export class AddonBlockLearningPlansHandlerService extends CoreBlockBaseHandler
|
||||||
* @return Data or promise resolved with the data.
|
* @return Data or promise resolved with the data.
|
||||||
*/
|
*/
|
||||||
getDisplayData(): CoreBlockHandlerData {
|
getDisplayData(): CoreBlockHandlerData {
|
||||||
// @todo
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
title: 'addon.block_learningplans.pluginname',
|
title: 'addon.block_learningplans.pluginname',
|
||||||
class: 'addon-block-learning-plans',
|
class: 'addon-block-learning-plans',
|
||||||
|
|
|
@ -65,7 +65,7 @@
|
||||||
</ion-card>
|
</ion-card>
|
||||||
<ion-card *ngIf="plan">
|
<ion-card *ngIf="plan">
|
||||||
<ion-card-header class="ion-text-wrap">
|
<ion-card-header class="ion-text-wrap">
|
||||||
<h2>{{ 'addon.competency.learningplancompetencies' | translate }}</h2>
|
<ion-card-title>{{ 'addon.competency.learningplancompetencies' | translate }}</ion-card-title>
|
||||||
</ion-card-header>
|
</ion-card-header>
|
||||||
<ion-list>
|
<ion-list>
|
||||||
<ion-item class="ion-text-wrap" *ngIf="plan.competencycount == 0">
|
<ion-item class="ion-text-wrap" *ngIf="plan.competencycount == 0">
|
||||||
|
|
|
@ -3377,7 +3377,7 @@ export type AddonMessagesMarkMessageReadResult = {
|
||||||
* Result of WS core_message_send_instant_messages.
|
* Result of WS core_message_send_instant_messages.
|
||||||
*/
|
*/
|
||||||
export type AddonMessagesSendInstantMessagesMessage = {
|
export type AddonMessagesSendInstantMessagesMessage = {
|
||||||
msgid: number; // Test this to know if it succeeds: id of the created message if it succeeded, -1 when failed.
|
msgid: number; // Test this to know if it succeeds: i of the created message if it succeeded, -1 when failed.
|
||||||
clientmsgid?: string; // Your own id for the message.
|
clientmsgid?: string; // Your own id for the message.
|
||||||
errormessage?: string; // Error message - if it failed.
|
errormessage?: string; // Error message - if it failed.
|
||||||
text?: string; // @since 3.6. The text of the message.
|
text?: string; // @since 3.6. The text of the message.
|
||||||
|
|
|
@ -22,8 +22,6 @@
|
||||||
.addon-data-advanced-search {
|
.addon-data-advanced-search {
|
||||||
padding: 16px;
|
padding: 16px;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
// @todo check if needed
|
|
||||||
// @include safe-area-padding-horizontal(16px !important, 16px !important);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.addon-data-contents form,
|
.addon-data-contents form,
|
||||||
|
|
|
@ -17,8 +17,6 @@ $grid-column-paddings: (
|
||||||
white-space: normal;
|
white-space: normal;
|
||||||
word-break: break-word;
|
word-break: break-word;
|
||||||
padding: 16px;
|
padding: 16px;
|
||||||
// @todo check if needed
|
|
||||||
// @include safe-area-padding-horizontal(16px !important, 16px !important);
|
|
||||||
|
|
||||||
background-color: var(--ion-item-background);
|
background-color: var(--ion-item-background);
|
||||||
border-width: 1px 0;
|
border-width: 1px 0;
|
||||||
|
|
|
@ -49,8 +49,6 @@ declare module '@singletons/events' {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Service that provides some features for forums.
|
* Service that provides some features for forums.
|
||||||
*
|
|
||||||
* @todo Add all content.
|
|
||||||
*/
|
*/
|
||||||
@Injectable({ providedIn: 'root' })
|
@Injectable({ providedIn: 'root' })
|
||||||
export class AddonModForumProvider {
|
export class AddonModForumProvider {
|
||||||
|
|
|
@ -61,51 +61,62 @@
|
||||||
<!-- List of user attempts. -->
|
<!-- List of user attempts. -->
|
||||||
<ion-card class="addon-mod_quiz-table" *ngIf="quiz && attempts.length">
|
<ion-card class="addon-mod_quiz-table" *ngIf="quiz && attempts.length">
|
||||||
<ion-card-header class="ion-text-wrap">
|
<ion-card-header class="ion-text-wrap">
|
||||||
<ion-card-header>
|
|
||||||
<ion-card-title>{{ 'addon.mod_quiz.summaryofattempts' | translate }}</ion-card-title>
|
<ion-card-title>{{ 'addon.mod_quiz.summaryofattempts' | translate }}</ion-card-title>
|
||||||
</ion-card-header>
|
</ion-card-header>
|
||||||
</ion-card-header>
|
<ion-card-content role="table">
|
||||||
<ion-card-content>
|
|
||||||
<!-- "Header" of the table -->
|
<!-- "Header" of the table -->
|
||||||
<ion-item class="ion-text-wrap addon-mod_quiz-table-header" detail="true">
|
<ion-item class="ion-text-wrap addon-mod_quiz-table-header">
|
||||||
<ion-label>
|
<ion-label role="rowgroup">
|
||||||
<ion-row class="ion-align-items-center">
|
<ion-row class="ion-align-items-center" role="row">
|
||||||
<ion-col class="ion-text-center ion-hide-md-down" *ngIf="quiz.showAttemptColumn">
|
<ion-col class="ion-text-center" *ngIf="quiz.showAttemptColumn" role="columnheader">
|
||||||
<strong>{{ 'addon.mod_quiz.attemptnumber' | translate }}</strong>
|
<strong class="ion-hide-md-up" aria-hidden="true">#</strong>
|
||||||
|
<span class="sr-only ion-hide-md-up">{{ 'addon.mod_quiz.attemptnumber' | translate }}</span>
|
||||||
|
<strong class="ion-hide-md-down">{{ 'addon.mod_quiz.attemptnumber' | translate }}</strong>
|
||||||
</ion-col>
|
</ion-col>
|
||||||
<ion-col class="ion-text-center ion-hide-md-up" *ngIf="quiz.showAttemptColumn"><strong>#</strong></ion-col>
|
<ion-col size="7" role="columnheader">
|
||||||
<ion-col size="7"><strong>{{ 'addon.mod_quiz.attemptstate' | translate }}</strong></ion-col>
|
<strong>{{ 'addon.mod_quiz.attemptstate' | translate }}</strong>
|
||||||
<ion-col class="ion-text-center ion-hide-md-down" *ngIf="quiz.showMarkColumn">
|
</ion-col>
|
||||||
|
<ion-col class="ion-text-center ion-hide-md-down" *ngIf="quiz.showMarkColumn" role="columnheader">
|
||||||
<strong>{{ 'addon.mod_quiz.marks' | translate }} / {{ quiz.sumGradesFormatted }}</strong>
|
<strong>{{ 'addon.mod_quiz.marks' | translate }} / {{ quiz.sumGradesFormatted }}</strong>
|
||||||
</ion-col>
|
</ion-col>
|
||||||
<ion-col class="ion-text-center" *ngIf="quiz.showGradeColumn">
|
<ion-col class="ion-text-center" *ngIf="quiz.showGradeColumn" role="columnheader">
|
||||||
<strong>{{ 'addon.mod_quiz.grade' | translate }} / {{ quiz.gradeFormatted }}</strong>
|
<strong>{{ 'addon.mod_quiz.grade' | translate }} / {{ quiz.gradeFormatted }}</strong>
|
||||||
</ion-col>
|
</ion-col>
|
||||||
</ion-row>
|
</ion-row>
|
||||||
</ion-label>
|
</ion-label>
|
||||||
</ion-item>
|
</ion-item>
|
||||||
|
<div role="rowgroup">
|
||||||
<!-- List of attempts. -->
|
<!-- List of attempts. -->
|
||||||
<ion-item class="ion-text-wrap" *ngFor="let attempt of attempts" button detail="true"
|
<ion-item
|
||||||
|
button
|
||||||
|
detail="true"
|
||||||
|
*ngFor="let attempt of attempts"
|
||||||
|
class="ion-text-wrap"
|
||||||
[ngClass]='{"addon-mod_quiz-highlighted": attempt.highlightGrade}'
|
[ngClass]='{"addon-mod_quiz-highlighted": attempt.highlightGrade}'
|
||||||
[attr.aria-label]="'core.seemoredetail' | translate" (click)="viewAttempt(attempt.id)">
|
[attr.aria-label]="'core.seemoredetail' | translate"
|
||||||
|
(click)="viewAttempt(attempt.id)"
|
||||||
|
>
|
||||||
<ion-label>
|
<ion-label>
|
||||||
<ion-row class="ion-align-items-center">
|
<ion-row class="ion-align-items-center" role="row">
|
||||||
<ion-col class="ion-text-center" *ngIf="quiz.showAttemptColumn && attempt.preview">
|
<ion-col class="ion-text-center" *ngIf="quiz.showAttemptColumn && attempt.preview" role="cell">
|
||||||
{{ 'addon.mod_quiz.preview' | translate }}
|
{{ 'addon.mod_quiz.preview' | translate }}
|
||||||
</ion-col>
|
</ion-col>
|
||||||
<ion-col class="ion-text-center" *ngIf="quiz.showAttemptColumn && !attempt.preview">
|
<ion-col class="ion-text-center" *ngIf="quiz.showAttemptColumn && !attempt.preview" role="cell">
|
||||||
{{ attempt.attempt }}
|
{{ attempt.attempt }}
|
||||||
</ion-col>
|
</ion-col>
|
||||||
<ion-col size="7">
|
<ion-col size="7" role="cell">
|
||||||
<p *ngFor="let sentence of attempt.readableState">{{ sentence }}</p>
|
<p *ngFor="let sentence of attempt.readableState">{{ sentence }}</p>
|
||||||
</ion-col>
|
</ion-col>
|
||||||
<ion-col class="ion-text-center ion-hide-md-down" *ngIf="quiz.showMarkColumn">
|
<ion-col class="ion-text-center ion-hide-md-down" *ngIf="quiz.showMarkColumn" role="cell">
|
||||||
<p>{{ attempt.readableMark }}</p>
|
<p>{{ attempt.readableMark }}</p>
|
||||||
</ion-col>
|
</ion-col>
|
||||||
<ion-col class="ion-text-center" *ngIf="quiz.showGradeColumn"><p>{{ attempt.readableGrade }}</p></ion-col>
|
<ion-col class="ion-text-center" *ngIf="quiz.showGradeColumn" role="cell">
|
||||||
|
<p>{{ attempt.readableGrade }}</p>
|
||||||
|
</ion-col>
|
||||||
</ion-row>
|
</ion-row>
|
||||||
</ion-label>
|
</ion-label>
|
||||||
</ion-item>
|
</ion-item>
|
||||||
|
</div>
|
||||||
</ion-card-content>
|
</ion-card-content>
|
||||||
</ion-card>
|
</ion-card>
|
||||||
|
|
||||||
|
|
|
@ -23,8 +23,8 @@
|
||||||
<ion-card *ngIf="attempt">
|
<ion-card *ngIf="attempt">
|
||||||
<ion-card-header class="ion-text-wrap">
|
<ion-card-header class="ion-text-wrap">
|
||||||
<ion-card-title>
|
<ion-card-title>
|
||||||
<span *ngIf="attempt.preview">{{ 'addon.mod_quiz.reviewofpreview' | translate }}</span>
|
<ng-container *ngIf="attempt.preview">{{ 'addon.mod_quiz.reviewofpreview' | translate }}</ng-container>
|
||||||
<span *ngIf="!attempt.preview">{{ 'addon.mod_quiz.reviewofattempt' | translate:{$a: attempt.attempt} }}</span>
|
<ng-container *ngIf="!attempt.preview">{{ 'addon.mod_quiz.reviewofattempt' | translate:{$a: attempt.attempt} }}</ng-container>
|
||||||
</ion-card-title>
|
</ion-card-title>
|
||||||
</ion-card-header>
|
</ion-card-header>
|
||||||
<ion-list lines="none">
|
<ion-list lines="none">
|
||||||
|
|
|
@ -35,7 +35,7 @@ const routes: Routes = [
|
||||||
canDeactivate: [CanLeaveGuard],
|
canDeactivate: [CanLeaveGuard],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: ':courseId/:cmId/:submissionId/edit', // @todo
|
path: ':courseId/:cmId/:submissionId/edit',
|
||||||
component: AddonModWorkshopEditSubmissionPage,
|
component: AddonModWorkshopEditSubmissionPage,
|
||||||
canDeactivate: [CanLeaveGuard],
|
canDeactivate: [CanLeaveGuard],
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,31 +0,0 @@
|
||||||
:host {
|
|
||||||
// @todo
|
|
||||||
// .card-md core-file + core-file > .item-md.item-block > .item-inner,
|
|
||||||
// core-file + core-file > .item-md.item-block > .item-inner {
|
|
||||||
// border-top: 1px solid $list-md-border-color;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// .card-ios core-file + core-file > .item-ios.item-block > .item-inner,
|
|
||||||
// core-file + core-file > .item-ios.item-block > .item-inner {
|
|
||||||
// border-top: $hairlines-width solid $list-ios-border-color;
|
|
||||||
// .buttons {
|
|
||||||
// min-height: 53px;
|
|
||||||
// min-width: 58px;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
// core-file > .item.item-block > .item-inner {
|
|
||||||
// border-bottom: 0;
|
|
||||||
// @include safe-area-padding(null, 0px, null, null);
|
|
||||||
// .buttons {
|
|
||||||
// display: flex;
|
|
||||||
// flex-flow: row;
|
|
||||||
// align-items: center;
|
|
||||||
// z-index: 1;
|
|
||||||
// justify-content: space-around;
|
|
||||||
// align-content: center;
|
|
||||||
// min-height: 52px;
|
|
||||||
// min-width: 53px;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
}
|
|
|
@ -34,7 +34,6 @@ import { CoreWSFile } from '@services/ws';
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'core-file',
|
selector: 'core-file',
|
||||||
templateUrl: 'core-file.html',
|
templateUrl: 'core-file.html',
|
||||||
styleUrls: ['file.scss'],
|
|
||||||
})
|
})
|
||||||
export class CoreFileComponent implements OnInit, OnDestroy {
|
export class CoreFileComponent implements OnInit, OnDestroy {
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
:host {
|
:host {
|
||||||
position: relative;
|
position: relative;
|
||||||
|
width: var(--core-avatar-size);
|
||||||
|
height: var(--core-avatar-size);
|
||||||
|
|
||||||
.clickable {
|
.clickable {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
|
|
@ -4,9 +4,6 @@
|
||||||
background: var(--background);
|
background: var(--background);
|
||||||
|
|
||||||
ion-item-divider {
|
ion-item-divider {
|
||||||
min-height: 60px;
|
min-height: var(--item-divider-min-height);
|
||||||
.core-button-spinner {
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,7 +16,6 @@
|
||||||
box-shadow: none !important;
|
box-shadow: none !important;
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
// @todo @include core-split-area-start();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
div.core-course-blocks-side {
|
div.core-course-blocks-side {
|
||||||
|
@ -24,7 +23,6 @@
|
||||||
min-width: var(--side-blocks-min-width);
|
min-width: var(--side-blocks-min-width);
|
||||||
box-shadow: var(--side-blocks-box-shadow);
|
box-shadow: var(--side-blocks-box-shadow);
|
||||||
z-index: 2;
|
z-index: 2;
|
||||||
// @todo @include core-split-area-end();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.core-course-blocks-content,
|
.core-course-blocks-content,
|
||||||
|
|
|
@ -52,31 +52,4 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// @todo
|
|
||||||
// .item-divider {
|
|
||||||
// .label {
|
|
||||||
// margin-top: 0;
|
|
||||||
// margin-bottom: 0;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// core-format-text {
|
|
||||||
// line-height: 44px;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// ion-badge core-format-text {
|
|
||||||
// line-height: normal;
|
|
||||||
// margin-bottom: 9px;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// &.core-section-download .label{
|
|
||||||
// @include margin(null, 0, null, null);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
// div.core-section-download {
|
|
||||||
// @include padding(null, 0, null, null);
|
|
||||||
// }
|
|
||||||
|
|
||||||
//
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,17 +0,0 @@
|
||||||
// @todo Review commented styles.
|
|
||||||
// ion-app.app-root {
|
|
||||||
// .safe-area-page,
|
|
||||||
// .safe-padding-horizontal {
|
|
||||||
// core-course-module-description {
|
|
||||||
// padding-left: 0 !important;
|
|
||||||
// padding-right: 0 !important;
|
|
||||||
// .item-ios.item-block {
|
|
||||||
// @include safe-area-padding-horizontal($item-ios-padding-end / 2, null);
|
|
||||||
|
|
||||||
// .item-inner {
|
|
||||||
// @include safe-area-padding-horizontal(null, $item-ios-padding-end / 2);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
|
@ -28,7 +28,10 @@
|
||||||
</p>
|
</p>
|
||||||
</ion-label>
|
</ion-label>
|
||||||
<ng-container *ngIf="!isEnrolled">
|
<ng-container *ngIf="!isEnrolled">
|
||||||
<ion-icon *ngFor="let icon of icons" color="dark" size="small"
|
<ion-icon *ngFor="let icon of icons" color="dark" size="small" [name]="icon.icon"
|
||||||
[name]="icon.icon" [attr.aria-label]="icon.label | translate" slot="end"></ion-icon>
|
[title]="icon.label | translate"
|
||||||
|
[attr.aria-label]="icon.label | translate"
|
||||||
|
slot="end">
|
||||||
|
</ion-icon>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
</ion-item>
|
</ion-item>
|
||||||
|
|
|
@ -1,7 +1,18 @@
|
||||||
@import "~theme/globals";
|
@import "~theme/globals";
|
||||||
|
|
||||||
// @todo darkmode
|
:host {
|
||||||
// @todo RTL layout
|
--header-background: var(--white);
|
||||||
|
--odd-cell-background: var(--gray-lighter);
|
||||||
|
--even-cell-background: var(--white);
|
||||||
|
--icon-color: #999999;
|
||||||
|
}
|
||||||
|
|
||||||
|
:host-context(body.dark) {
|
||||||
|
--header-background: var(--black);
|
||||||
|
--odd-cell-background: var(--gray-darker);
|
||||||
|
--even-cell-background: var(--black);
|
||||||
|
--icon-color: #eeeeee;
|
||||||
|
}
|
||||||
|
|
||||||
:host-context(ion-app.md) {
|
:host-context(ion-app.md) {
|
||||||
--border-color: var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, rgba(0, 0, 0, .13))));
|
--border-color: var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, rgba(0, 0, 0, .13))));
|
||||||
|
@ -18,16 +29,12 @@
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
color: var(--ion-text-color);
|
color: var(--ion-text-color);
|
||||||
|
|
||||||
// @include darkmode() {
|
|
||||||
// color: $core-dark-text-color;
|
|
||||||
// }
|
|
||||||
|
|
||||||
tr {
|
tr {
|
||||||
border-bottom: 1px solid var(--border-color);
|
border-bottom: 1px solid var(--border-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
th, td {
|
th, td {
|
||||||
padding: 10px 0 10px 10px;
|
@include padding(10px, 10px, 10px, null);
|
||||||
vertical-align: top;
|
vertical-align: top;
|
||||||
white-space: normal;
|
white-space: normal;
|
||||||
text-align: start;
|
text-align: start;
|
||||||
|
@ -36,11 +43,7 @@
|
||||||
thead th {
|
thead th {
|
||||||
vertical-align: bottom;
|
vertical-align: bottom;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
background-color: var(--white);
|
background-color: var(--header-background);
|
||||||
|
|
||||||
// @include darkmode() {
|
|
||||||
// background-color: $black;
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
tbody th {
|
tbody th {
|
||||||
|
@ -48,15 +51,15 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
#gradeitem {
|
#gradeitem {
|
||||||
padding-left: 5px;
|
@include padding(null, null, null, 5px);
|
||||||
}
|
}
|
||||||
|
|
||||||
.core-grades-table-gradeitem {
|
.core-grades-table-gradeitem {
|
||||||
padding-left: 5px;
|
@include padding(null, null, null, 5px);
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
|
|
||||||
&.column-itemname {
|
&.column-itemname {
|
||||||
padding-left: 0;
|
@include padding(null, null, null, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
img {
|
img {
|
||||||
|
@ -65,17 +68,17 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
ion-icon {
|
ion-icon {
|
||||||
color: #999999;
|
color: var(--icon-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
span {
|
span {
|
||||||
margin-left: 5px;
|
@include margin(null, null, null, 5px);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.core-grades-table-feedback {
|
.core-grades-table-feedback {
|
||||||
padding-left: 5px;
|
@include padding(null, null, null, 5px);
|
||||||
|
|
||||||
.no-overflow {
|
.no-overflow {
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
|
@ -89,27 +92,16 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.odd {
|
.odd {
|
||||||
|
|
||||||
td, th, th[aria-current="page"] {
|
td, th, th[aria-current="page"] {
|
||||||
background-color: var(--gray-lighter);
|
background-color: var(--odd-cell-background);
|
||||||
|
|
||||||
// @include darkmode() {
|
|
||||||
// background-color: $gray-darker;
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.even {
|
.even {
|
||||||
|
|
||||||
td, th, th[aria-current="page"] {
|
td, th, th[aria-current="page"] {
|
||||||
background-color: var(--white);
|
background-color: var(--even-cell-background);
|
||||||
|
|
||||||
// @include darkmode() {
|
|
||||||
// background-color: $black;
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.core-grades-grade-clickable {
|
.core-grades-grade-clickable {
|
||||||
|
|
|
@ -93,7 +93,7 @@
|
||||||
(ionCancel)="filterChanged()" [placeholder]="'core.login.findyoursite' | translate">
|
(ionCancel)="filterChanged()" [placeholder]="'core.login.findyoursite' | translate">
|
||||||
</ion-searchbar>
|
</ion-searchbar>
|
||||||
<ng-container *ngFor="let site of filteredSites">
|
<ng-container *ngFor="let site of filteredSites">
|
||||||
<ng-container *ngTemplateOutlet="site"></ng-container>
|
<ng-container *ngTemplateOutlet="sitelisting; context: {site: site}"></ng-container>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
</ion-list>
|
</ion-list>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
|
@ -2,14 +2,6 @@
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.searchbar-ios {
|
|
||||||
background: transparent;
|
|
||||||
|
|
||||||
.searchbar-input {
|
|
||||||
background-color: white; // @todo $searchbar-ios-toolbar-input-background;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.item {
|
.item {
|
||||||
&.core-login-need-help {
|
&.core-login-need-help {
|
||||||
margin-top: 16px;
|
margin-top: 16px;
|
||||||
|
|
|
@ -17,10 +17,3 @@ $core-dashboard-logo: false !default;
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ion-badge.core-course-download-courses-progress {
|
|
||||||
display: block;
|
|
||||||
// @include float(start);
|
|
||||||
// @include margin(12px, 12px, null, 12px);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
|
@ -6,11 +6,11 @@
|
||||||
[autocorrect]="autocorrect" [spellcheck]="spellcheck" [core-auto-focus]="autoFocus"
|
[autocorrect]="autocorrect" [spellcheck]="spellcheck" [core-auto-focus]="autoFocus"
|
||||||
[disabled]="disabled" role="searchbox" (ionFocus)="focus($event)">
|
[disabled]="disabled" role="searchbox" (ionFocus)="focus($event)">
|
||||||
</ion-input>
|
</ion-input>
|
||||||
<ion-button slot="end" fill="clear" type="submit" size="small" [attr.aria-label]="searchLabel"
|
<ion-button slot="end" fill="clear" type="submit" [attr.aria-label]="searchLabel"
|
||||||
[disabled]="disabled || !searchText || (searchText.length < lengthCheck)">
|
[disabled]="disabled || !searchText || (searchText.length < lengthCheck)">
|
||||||
<ion-icon name="fas-search" slot="icon-only" aria-hidden="true"></ion-icon>
|
<ion-icon name="fas-search" slot="icon-only" aria-hidden="true"></ion-icon>
|
||||||
</ion-button>
|
</ion-button>
|
||||||
<ion-button *ngIf="showClear" slot="end" fill="clear" size="small"
|
<ion-button *ngIf="showClear" slot="end" fill="clear"
|
||||||
[attr.aria-label]="'core.clearsearch' | translate" [disabled]="searched == '' || disabled"
|
[attr.aria-label]="'core.clearsearch' | translate" [disabled]="searched == '' || disabled"
|
||||||
(click)="clearForm()">
|
(click)="clearForm()">
|
||||||
<ion-icon name="fas-backspace" slot="icon-only" aria-hidden="true"></ion-icon>
|
<ion-icon name="fas-backspace" slot="icon-only" aria-hidden="true"></ion-icon>
|
||||||
|
|
|
@ -228,7 +228,7 @@ $core-login-text-color-dark: $white !default;
|
||||||
$core-star-color: $brand-color !default;
|
$core-star-color: $brand-color !default;
|
||||||
|
|
||||||
$core-large-avatar-size: 90px !default;
|
$core-large-avatar-size: 90px !default;
|
||||||
$core-avatar-size: 40px !default;
|
$core-avatar-size: 44px !default;
|
||||||
|
|
||||||
$core-send-message-input-background: $gray !default;
|
$core-send-message-input-background: $gray !default;
|
||||||
$core-send-message-input-color: $black !default;
|
$core-send-message-input-color: $black !default;
|
||||||
|
@ -252,7 +252,7 @@ $addon-messages-avatar-size: 30px !default;
|
||||||
$addon-messages-discussion-badge: $primary !default;
|
$addon-messages-discussion-badge: $primary !default;
|
||||||
$addon-messages-discussion-badge-text: $white !default;
|
$addon-messages-discussion-badge-text: $white !default;
|
||||||
|
|
||||||
$addon-forum-avatar-size: 28px !default;
|
$addon-forum-avatar-size: 44px !default;
|
||||||
$addon-forum-border-color: $gray !default;
|
$addon-forum-border-color: $gray !default;
|
||||||
$addon-forum-highlight-color: $gray-lighter !default;
|
$addon-forum-highlight-color: $gray-lighter !default;
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
@import "./globals.mixins.ionic.scss";
|
@import "./globals.scss";
|
||||||
|
|
||||||
// Common styles.
|
// Common styles.
|
||||||
.text-left { text-align: left; }
|
.text-left { text-align: left; }
|
||||||
|
@ -126,12 +126,17 @@ ion-button.button-small ion-icon.faicon[slot] {
|
||||||
font-size: 1.5em !important;
|
font-size: 1.5em !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
[dir=rtl] ion-icon.icon-flip-rtl {
|
[dir=rtl] ion-icon.icon-flip-rtl,
|
||||||
|
[dir=rtl] ion-item::part(detail-icon),
|
||||||
|
[dir=rtl] ion-icon.item-detail-icon {
|
||||||
transform: scaleX(-1);
|
transform: scaleX(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Buttons.
|
// Buttons.
|
||||||
ion-button, button, [role="button"] {
|
ion-button,
|
||||||
|
ion-fab-button,
|
||||||
|
button,
|
||||||
|
[role="button"] {
|
||||||
min-height: var(--a11y-min-target-size);
|
min-height: var(--a11y-min-target-size);
|
||||||
min-width: var(--a11y-min-target-size);
|
min-width: var(--a11y-min-target-size);
|
||||||
}
|
}
|
||||||
|
@ -203,7 +208,7 @@ ion-toolbar {
|
||||||
// Modals.
|
// Modals.
|
||||||
.core-modal-fullscreen .modal-wrapper {
|
.core-modal-fullscreen .modal-wrapper {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
// @todo @include position(0 !important, null, null, 0 !important);
|
@include position(0 !important, null, null, 0 !important);
|
||||||
display: block;
|
display: block;
|
||||||
width: 100% !important;
|
width: 100% !important;
|
||||||
height: 100% !important;
|
height: 100% !important;
|
||||||
|
@ -215,11 +220,10 @@ ion-toolbar {
|
||||||
|
|
||||||
@media only screen and (min-height: 400px) and (min-width: 300px) {
|
@media only screen and (min-height: 400px) and (min-width: 300px) {
|
||||||
.core-modal-lateral {
|
.core-modal-lateral {
|
||||||
// @todo @include core-split-area-end();
|
|
||||||
|
|
||||||
.modal-wrapper {
|
.modal-wrapper {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
@include position(0 !important, 0 !important, 0 !important, auto);
|
@include position(0 !important, 0 !important, 0 !important, unset !important);
|
||||||
display: block;
|
display: block;
|
||||||
height: 100% !important;
|
height: 100% !important;
|
||||||
width: auto;
|
width: auto;
|
||||||
|
@ -422,6 +426,16 @@ ion-select::part(text) {
|
||||||
text-decoration: underline;
|
text-decoration: underline;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
core-block ion-item-divider .core-button-spinner {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
@include margin-horizontal(10px);
|
||||||
|
|
||||||
|
ion-badge.core-course-download-courses-progress {
|
||||||
|
@include margin(null, 12px, null, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Horizontal scrolling elements
|
// Horizontal scrolling elements
|
||||||
.core-horizontal-scroll {
|
.core-horizontal-scroll {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
Loading…
Reference in New Issue