MOBILE-2431 ui: Improve clickable ion-items
parent
867e126ab4
commit
e700e38d01
|
@ -18,12 +18,12 @@
|
||||||
</ion-item-divider>
|
</ion-item-divider>
|
||||||
<ng-container *ngFor="let contact of contacts[contactType]">
|
<ng-container *ngFor="let contact of contacts[contactType]">
|
||||||
<!-- Don't show deleted users -->
|
<!-- Don't show deleted users -->
|
||||||
<ion-item text-wrap *ngIf="contact.profileimageurl || contact.profileimageurlsmall" [title]="contact.fullname" (click)="gotoDiscussion(contact.id)" [class.core-split-item-selected]="contact.id == discussionUserId" detail-none>
|
<a ion-item text-wrap *ngIf="contact.profileimageurl || contact.profileimageurlsmall" [title]="contact.fullname" (click)="gotoDiscussion(contact.id)" [class.core-split-item-selected]="contact.id == discussionUserId" detail-none>
|
||||||
<ion-avatar item-start>
|
<ion-avatar item-start>
|
||||||
<img src="{{contact.profileimageurl || contact.profileimageurlsmall}}" [alt]="'core.pictureof' | translate:{$a: contact.fullname}" core-external-content onError="this.src='assets/img/user-avatar.png'">
|
<img src="{{contact.profileimageurl || contact.profileimageurlsmall}}" [alt]="'core.pictureof' | translate:{$a: contact.fullname}" core-external-content onError="this.src='assets/img/user-avatar.png'">
|
||||||
</ion-avatar>
|
</ion-avatar>
|
||||||
<h2><core-format-text [text]="contact.fullname"></core-format-text></h2>
|
<h2><core-format-text [text]="contact.fullname"></core-format-text></h2>
|
||||||
</ion-item>
|
</a>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
</ion-list>
|
</ion-list>
|
||||||
|
|
|
@ -16,17 +16,17 @@
|
||||||
<h2>{{ 'core.searchresults' | translate }}</h2>
|
<h2>{{ 'core.searchresults' | translate }}</h2>
|
||||||
<ion-note item-end>{{ search.results.length }}</ion-note>
|
<ion-note item-end>{{ search.results.length }}</ion-note>
|
||||||
</ion-item-divider>
|
</ion-item-divider>
|
||||||
<ion-item text-wrap *ngFor="let result of search.results" [title]="result.fullname" (click)="gotoDiscussion(result.userid, result.messageid)" [class.core-split-item-selected]="result.userid == discussionUserId" detail-none>
|
<a ion-item text-wrap *ngFor="let result of search.results" [title]="result.fullname" (click)="gotoDiscussion(result.userid, result.messageid)" [class.core-split-item-selected]="result.userid == discussionUserId" detail-none>
|
||||||
<ion-avatar item-start>
|
<ion-avatar item-start>
|
||||||
<img src="{{result.profileimageurl}}" [alt]="'core.pictureof' | translate:{$a: result.fullname}" core-external-content onError="this.src='assets/img/user-avatar.png'">
|
<img src="{{result.profileimageurl}}" [alt]="'core.pictureof' | translate:{$a: result.fullname}" core-external-content onError="this.src='assets/img/user-avatar.png'">
|
||||||
</ion-avatar>
|
</ion-avatar>
|
||||||
<h2><core-format-text [text]="result.fullname"></core-format-text></h2>
|
<h2><core-format-text [text]="result.fullname"></core-format-text></h2>
|
||||||
<p><core-format-text clean="true" singleLine="true" [text]="result.lastmessage"></core-format-text></p>
|
<p><core-format-text clean="true" singleLine="true" [text]="result.lastmessage"></core-format-text></p>
|
||||||
</ion-item>
|
</a>
|
||||||
</ion-list>
|
</ion-list>
|
||||||
|
|
||||||
<ion-list *ngIf="!search.showResults" no-margin>
|
<ion-list *ngIf="!search.showResults" no-margin>
|
||||||
<ion-item text-wrap *ngFor="let discussion of discussions" [title]="discussion.fullname" (click)="gotoDiscussion(discussion.message.user)" [class.core-split-item-selected]="discussion.message.user == discussionUserId" detail-none>
|
<a ion-item text-wrap *ngFor="let discussion of discussions" [title]="discussion.fullname" (click)="gotoDiscussion(discussion.message.user)" [class.core-split-item-selected]="discussion.message.user == discussionUserId" detail-none>
|
||||||
<ion-avatar item-start>
|
<ion-avatar item-start>
|
||||||
<img src="{{discussion.profileimageurl}}" [alt]="'core.pictureof' | translate:{$a: discussion.fullname}" core-external-content onError="this.src='assets/img/user-avatar.png'">
|
<img src="{{discussion.profileimageurl}}" [alt]="'core.pictureof' | translate:{$a: discussion.fullname}" core-external-content onError="this.src='assets/img/user-avatar.png'">
|
||||||
</ion-avatar>
|
</ion-avatar>
|
||||||
|
@ -38,7 +38,7 @@
|
||||||
</ion-note>
|
</ion-note>
|
||||||
</h2>
|
</h2>
|
||||||
<p><core-format-text clean="true" singleLine="true" [text]="discussion.message.message"></core-format-text></p>
|
<p><core-format-text clean="true" singleLine="true" [text]="discussion.message.message"></core-format-text></p>
|
||||||
</ion-item>
|
</a>
|
||||||
</ion-list>
|
</ion-list>
|
||||||
</core-loading>
|
</core-loading>
|
||||||
</ion-content>
|
</ion-content>
|
||||||
|
|
|
@ -201,14 +201,14 @@
|
||||||
</ion-item>
|
</ion-item>
|
||||||
|
|
||||||
<!-- Data about the grader (teacher who graded). -->
|
<!-- Data about the grader (teacher who graded). -->
|
||||||
<ion-item text-wrap *ngIf="grader" (click)="openUserProfile(grader.id)" [title]="grader.fullname" detail-push>
|
<a ion-item text-wrap *ngIf="grader" (click)="openUserProfile(grader.id)" [title]="grader.fullname" detail-push>
|
||||||
<ion-avatar item-start>
|
<ion-avatar item-start>
|
||||||
<img [src]="grader.profileimageurl" core-external-content [alt]="'core.pictureof' | translate:{$a: grader.fullname}" role="presentation" onError="this.src='assets/img/user-avatar.png'">
|
<img [src]="grader.profileimageurl" core-external-content [alt]="'core.pictureof' | translate:{$a: grader.fullname}" role="presentation" onError="this.src='assets/img/user-avatar.png'">
|
||||||
</ion-avatar>
|
</ion-avatar>
|
||||||
<h2>{{ 'addon.mod_assign.gradedby' | translate }}</h2>
|
<h2>{{ 'addon.mod_assign.gradedby' | translate }}</h2>
|
||||||
<h2>{{ grader.fullname }}</h2>
|
<h2>{{ grader.fullname }}</h2>
|
||||||
<p *ngIf="feedback.gradeddate">{{ feedback.gradeddate * 1000 | coreFormatDate:"dfmediumdate" }}</p>
|
<p *ngIf="feedback.gradeddate">{{ feedback.gradeddate * 1000 | coreFormatDate:"dfmediumdate" }}</p>
|
||||||
</ion-item>
|
</a>
|
||||||
|
|
||||||
<!-- Warning message if cannot save grades. -->
|
<!-- Warning message if cannot save grades. -->
|
||||||
<div *ngIf="isGrading && !canSaveGrades" class="core-warning-card" icon-start>
|
<div *ngIf="isGrading && !canSaveGrades" class="core-warning-card" icon-start>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<ion-item text-wrap (click)="showComments()">
|
<a ion-item text-wrap (click)="showComments()" detail-none>
|
||||||
<h2>{{plugin.name}}</h2>
|
<h2>{{plugin.name}}</h2>
|
||||||
<core-comments contextLevel="module" [instanceId]="assign.cmid" component="assignsubmission_comments" [itemId]="submission.id" area="submission_comments" [title]="plugin.name"></core-comments>
|
<core-comments contextLevel="module" [instanceId]="assign.cmid" component="assignsubmission_comments" [itemId]="submission.id" area="submission_comments" [title]="plugin.name"></core-comments>
|
||||||
</ion-item>
|
</a>
|
||||||
|
|
|
@ -51,13 +51,13 @@
|
||||||
<ion-option *ngFor="let groupOpt of groupInfo.groups" [value]="groupOpt.id">{{groupOpt.name}}</ion-option>
|
<ion-option *ngFor="let groupOpt of groupInfo.groups" [value]="groupOpt.id">{{groupOpt.name}}</ion-option>
|
||||||
</ion-select>
|
</ion-select>
|
||||||
</ion-item>
|
</ion-item>
|
||||||
<ion-item text-wrap *ngIf="access.canviewreports || access.canedititems" (click)="access.canviewreports && openFeature('Respondents')" [attr.detail-push]="access.canviewreports ? true : null">
|
<a ion-item text-wrap *ngIf="access.canviewreports || access.canedititems" (click)="access.canviewreports && openFeature('Respondents')" [attr.detail-none]="access.canviewreports ? null : true">
|
||||||
<h2>{{ 'addon.mod_feedback.completed_feedbacks' | translate }}</h2>
|
<h2>{{ 'addon.mod_feedback.completed_feedbacks' | translate }}</h2>
|
||||||
<ion-badge item-end>{{feedback.completedCount}}</ion-badge>
|
<ion-badge item-end>{{feedback.completedCount}}</ion-badge>
|
||||||
</ion-item>
|
</a>
|
||||||
<ion-item text-wrap *ngIf="!access.isanonymous && access.canviewreports" (click)="openFeature('NonRespondents')" detail-push>
|
<a ion-item text-wrap *ngIf="!access.isanonymous && access.canviewreports" (click)="openFeature('NonRespondents')" detail-push>
|
||||||
<h2>{{ 'addon.mod_feedback.show_nonrespondents' | translate }}</h2>
|
<h2>{{ 'addon.mod_feedback.show_nonrespondents' | translate }}</h2>
|
||||||
</ion-item>
|
</a>
|
||||||
<ion-item text-wrap *ngIf="access.canedititems">
|
<ion-item text-wrap *ngIf="access.canedititems">
|
||||||
<h2>{{ 'addon.mod_feedback.questions' | translate }}</h2>
|
<h2>{{ 'addon.mod_feedback.questions' | translate }}</h2>
|
||||||
<ion-badge item-end>{{feedback.itemsCount}}</ion-badge>
|
<ion-badge item-end>{{feedback.itemsCount}}</ion-badge>
|
||||||
|
|
|
@ -36,9 +36,9 @@
|
||||||
<ion-item-divider color="light">
|
<ion-item-divider color="light">
|
||||||
{{ 'addon.mod_glossary.entriestobesynced' | translate }}
|
{{ 'addon.mod_glossary.entriestobesynced' | translate }}
|
||||||
</ion-item-divider>
|
</ion-item-divider>
|
||||||
<ion-item *ngFor="let entry of offlineEntries" (click)="openNewEntry(entry)">
|
<a ion-item *ngFor="let entry of offlineEntries" (click)="openNewEntry(entry)" detail-none>
|
||||||
<p>{{entry.concept}}</p>
|
<p>{{entry.concept}}</p>
|
||||||
</ion-item>
|
</a>
|
||||||
</ion-list>
|
</ion-list>
|
||||||
|
|
||||||
<ion-list *ngIf="entries.length > 0">
|
<ion-list *ngIf="entries.length > 0">
|
||||||
|
@ -48,9 +48,9 @@
|
||||||
{{getDivider(entry)}}
|
{{getDivider(entry)}}
|
||||||
</ion-item-divider>
|
</ion-item-divider>
|
||||||
|
|
||||||
<ion-item (click)="openEntry(entry.id)" [class.core-split-item-selected]="entry.id == selectedEntry">
|
<a ion-item (click)="openEntry(entry.id)" [class.core-split-item-selected]="entry.id == selectedEntry" detail-none>
|
||||||
<p>{{entry.concept}}</p>
|
<p>{{entry.concept}}</p>
|
||||||
</ion-item>
|
</a>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
</ion-list>
|
</ion-list>
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<core-loading [hideUntil]="loaded">
|
<core-loading [hideUntil]="loaded">
|
||||||
<ion-item *ngIf="summary" text-wrap [attr.detail-push]="canViewAssessment && !canSelfAssess? true : null" (click)="gotoAssessment()">
|
<a ion-item *ngIf="summary" text-wrap [attr.detail-none]="canViewAssessment && !canSelfAssess? null : true" (click)="gotoAssessment()">
|
||||||
<ion-avatar item-start>
|
<ion-avatar item-start>
|
||||||
<img [src]="profile && profile.profileimageurl" core-external-content [alt]="'core.pictureof' | translate:{$a: profile && profile.fullname}" core-user-link [courseId]="courseId" [userId]="profile && profile.id" role="presentation" onError="this.src='assets/img/user-avatar.png'">
|
<img [src]="profile && profile.profileimageurl" core-external-content [alt]="'core.pictureof' | translate:{$a: profile && profile.fullname}" core-user-link [courseId]="courseId" [userId]="profile && profile.id" role="presentation" onError="this.src='assets/img/user-avatar.png'">
|
||||||
</ion-avatar>
|
</ion-avatar>
|
||||||
|
@ -23,5 +23,5 @@
|
||||||
<ion-note item-end *ngIf="offline">
|
<ion-note item-end *ngIf="offline">
|
||||||
<ion-icon name="time"></ion-icon>{{ 'core.notsent' | translate }}
|
<ion-icon name="time"></ion-icon>{{ 'core.notsent' | translate }}
|
||||||
</ion-note>
|
</ion-note>
|
||||||
</ion-item>
|
</a>
|
||||||
</core-loading>
|
</core-loading>
|
||||||
|
|
|
@ -15,11 +15,11 @@
|
||||||
<core-course-module-description *ngIf="description && selectedPhase == workshopPhases.PHASE_SETUP" [description]="description" [component]="component" [componentId]="componentId"></core-course-module-description>
|
<core-course-module-description *ngIf="description && selectedPhase == workshopPhases.PHASE_SETUP" [description]="description" [component]="component" [componentId]="componentId"></core-course-module-description>
|
||||||
|
|
||||||
<ion-card class="with-borders" *ngIf="phases">
|
<ion-card class="with-borders" *ngIf="phases">
|
||||||
<ion-item (click)="selectPhase()">
|
<a ion-item (click)="selectPhase()" detail-none>
|
||||||
<h2 stacked text-wrap>{{ phases[selectedPhase].title }}</h2>
|
<h2 stacked text-wrap>{{ phases[selectedPhase].title }}</h2>
|
||||||
<p text-wrap *ngIf="phases[selectedPhase].code == workshop.phase">{{ 'addon.mod_workshop.userplancurrentphase' | translate }}</p>
|
<p text-wrap *ngIf="phases[selectedPhase].code == workshop.phase">{{ 'addon.mod_workshop.userplancurrentphase' | translate }}</p>
|
||||||
<ion-icon item-end name="arrow-dropdown"></ion-icon>
|
<ion-icon item-end name="arrow-dropdown"></ion-icon>
|
||||||
</ion-item>
|
</a>
|
||||||
<a ion-item text-wrap *ngIf="phases[selectedPhase].switchUrl" [href]="phases[selectedPhase].switchUrl" detail-none>
|
<a ion-item text-wrap *ngIf="phases[selectedPhase].switchUrl" [href]="phases[selectedPhase].switchUrl" detail-none>
|
||||||
<ion-icon item-start name="swap"></ion-icon>
|
<ion-icon item-start name="swap"></ion-icon>
|
||||||
{{ 'addon.mod_workshop.switchphase' + selectedPhase | translate }}
|
{{ 'addon.mod_workshop.switchphase' + selectedPhase | translate }}
|
||||||
|
@ -28,7 +28,7 @@
|
||||||
</ion-card>
|
</ion-card>
|
||||||
|
|
||||||
<ion-card class="with-borders" *ngIf="phases && phases[selectedPhase] && phases[selectedPhase].tasks && phases[selectedPhase].tasks.length">
|
<ion-card class="with-borders" *ngIf="phases && phases[selectedPhase] && phases[selectedPhase].tasks && phases[selectedPhase].tasks.length">
|
||||||
<ion-item text-wrap *ngFor="let task of phases[selectedPhase].tasks" [class.item-dimmed]="selectedPhase != workshop.phase" (click)="runTask(task)" detail-none>
|
<a ion-item text-wrap *ngFor="let task of phases[selectedPhase].tasks" [class.item-dimmed]="selectedPhase != workshop.phase" (click)="runTask(task)" detail-none>
|
||||||
<ion-icon item-start name="radio-button-off" *ngIf="task.completed == null"></ion-icon>
|
<ion-icon item-start name="radio-button-off" *ngIf="task.completed == null"></ion-icon>
|
||||||
<ion-icon item-start name="close-circle" color="danger" *ngIf="task.completed == ''"></ion-icon>
|
<ion-icon item-start name="close-circle" color="danger" *ngIf="task.completed == ''"></ion-icon>
|
||||||
<ion-icon item-start name="information-circle" color="info" *ngIf="task.completed == 'info'"></ion-icon>
|
<ion-icon item-start name="information-circle" color="info" *ngIf="task.completed == 'info'"></ion-icon>
|
||||||
|
@ -37,7 +37,7 @@
|
||||||
<h2>{{task.title}}</h2>
|
<h2>{{task.title}}</h2>
|
||||||
<p *ngIf="task.details"><core-format-text [text]="task.details"></core-format-text></p>
|
<p *ngIf="task.details"><core-format-text [text]="task.details"></core-format-text></p>
|
||||||
<ion-icon item-end *ngIf="task.link && !task.support" name="open"></ion-icon>
|
<ion-icon item-end *ngIf="task.link && !task.support" name="open"></ion-icon>
|
||||||
</ion-item>
|
</a>
|
||||||
</ion-card>
|
</ion-card>
|
||||||
|
|
||||||
<!-- Has something offline. -->
|
<!-- Has something offline. -->
|
||||||
|
@ -102,12 +102,12 @@
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ion-card class="with-borders" *ngIf="!access.canviewallsubmissions && selectedPhase == workshop.phase && (canSubmit || canAssess) && selectedPhase == workshopPhases.PHASE_EVALUATION">
|
<ion-card class="with-borders" *ngIf="!access.canviewallsubmissions && selectedPhase == workshop.phase && (canSubmit || canAssess) && selectedPhase == workshopPhases.PHASE_EVALUATION">
|
||||||
<ion-item text-wrap *ngIf="submission" (click)="switchPhase(workshopPhases.PHASE_SUBMISSION)" detail-push>
|
<a ion-item text-wrap *ngIf="submission" (click)="switchPhase(workshopPhases.PHASE_SUBMISSION)" detail-push>
|
||||||
<h2>{{ 'addon.mod_workshop.yoursubmission' | translate }}</h2>
|
<h2>{{ 'addon.mod_workshop.yoursubmission' | translate }}</h2>
|
||||||
</ion-item>
|
</a>
|
||||||
<ion-item text-wrap *ngIf="canAssess" (click)="switchPhase(workshopPhases.PHASE_ASSESSMENT)" detail-push>
|
<a ion-item text-wrap *ngIf="canAssess" (click)="switchPhase(workshopPhases.PHASE_ASSESSMENT)" detail-push>
|
||||||
<h2>{{ 'addon.mod_workshop.assignedassessments' | translate }}</h2>
|
<h2>{{ 'addon.mod_workshop.assignedassessments' | translate }}</h2>
|
||||||
</ion-item>
|
</a>
|
||||||
</ion-card>
|
</ion-card>
|
||||||
|
|
||||||
<!-- CLOSED PHASE -->
|
<!-- CLOSED PHASE -->
|
||||||
|
@ -123,14 +123,14 @@
|
||||||
<ion-item-divider color="light" text-wrap>
|
<ion-item-divider color="light" text-wrap>
|
||||||
<h2>{{ 'addon.mod_workshop.yourgrades' | translate }}</h2>
|
<h2>{{ 'addon.mod_workshop.yourgrades' | translate }}</h2>
|
||||||
</ion-item-divider>
|
</ion-item-divider>
|
||||||
<ion-item text-wrap *ngIf="userGrades.submissionlongstrgrade" (click)="switchPhase(workshopPhases.PHASE_SUBMISSION)" detail-push>
|
<a ion-item text-wrap *ngIf="userGrades.submissionlongstrgrade" (click)="switchPhase(workshopPhases.PHASE_SUBMISSION)" detail-push>
|
||||||
<h2>{{ 'addon.mod_workshop.submissiongrade' | translate }}</h2>
|
<h2>{{ 'addon.mod_workshop.submissiongrade' | translate }}</h2>
|
||||||
<core-format-text [text]="userGrades.submissionlongstrgrade"></core-format-text>
|
<core-format-text [text]="userGrades.submissionlongstrgrade"></core-format-text>
|
||||||
</ion-item>
|
</a>
|
||||||
<ion-item text-wrap *ngIf="userGrades.assessmentlongstrgrade" (click)="switchPhase(workshopPhases.PHASE_ASSESSMENT)" detail-push>
|
<a ion-item text-wrap *ngIf="userGrades.assessmentlongstrgrade" (click)="switchPhase(workshopPhases.PHASE_ASSESSMENT)" detail-push>
|
||||||
<h2>{{ 'addon.mod_workshop.gradinggrade' | translate }}</h2>
|
<h2>{{ 'addon.mod_workshop.gradinggrade' | translate }}</h2>
|
||||||
<core-format-text [text]="userGrades.assessmentlongstrgrade"></core-format-text>
|
<core-format-text [text]="userGrades.assessmentlongstrgrade"></core-format-text>
|
||||||
</ion-item>
|
</a>
|
||||||
</ion-card>
|
</ion-card>
|
||||||
|
|
||||||
<ion-card class="with-borders" *ngIf="publishedSubmissions && publishedSubmissions.length">
|
<ion-card class="with-borders" *ngIf="publishedSubmissions && publishedSubmissions.length">
|
||||||
|
|
|
@ -47,7 +47,7 @@
|
||||||
</ion-item>
|
</ion-item>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<ion-item text-wrap *ngIf="summary" [attr.detail-push]="submission.timemodified? true : null" (click)="gotoSubmission()">
|
<a ion-item text-wrap *ngIf="summary" [attr.detail-none]="submission.timemodified ? null : true" (click)="gotoSubmission()">
|
||||||
<ion-avatar item-start>
|
<ion-avatar item-start>
|
||||||
<img [src]="profile && profile.profileimageurl" core-external-content [alt]="'core.pictureof' | translate:{$a: profile && profile.fullname}" core-user-link [courseId]="courseId" [userId]="profile && profile.id" role="presentation" onError="this.src='assets/img/user-avatar.png'">
|
<img [src]="profile && profile.profileimageurl" core-external-content [alt]="'core.pictureof' | translate:{$a: profile && profile.fullname}" core-user-link [courseId]="courseId" [userId]="profile && profile.id" role="presentation" onError="this.src='assets/img/user-avatar.png'">
|
||||||
</ion-avatar>
|
</ion-avatar>
|
||||||
|
@ -78,5 +78,5 @@
|
||||||
<div *ngIf="offline"><ion-icon name="time"></ion-icon> {{ 'core.notsent' | translate }}</div>
|
<div *ngIf="offline"><ion-icon name="time"></ion-icon> {{ 'core.notsent' | translate }}</div>
|
||||||
<div *ngIf="submission.deleted"><ion-icon name="trash"></ion-icon> {{ 'core.deletedoffline' | translate }}</div>
|
<div *ngIf="submission.deleted"><ion-icon name="trash"></ion-icon> {{ 'core.deletedoffline' | translate }}</div>
|
||||||
</ion-note>
|
</ion-note>
|
||||||
</ion-item>
|
</a>
|
||||||
</core-loading>
|
</core-loading>
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
</ion-header>
|
</ion-header>
|
||||||
<ion-content class="has-fab">
|
<ion-content class="has-fab">
|
||||||
<ion-list>
|
<ion-list>
|
||||||
<ion-item (click)="login(site.id)" *ngFor="let site of sites; let idx = index">
|
<a ion-item (click)="login(site.id)" *ngFor="let site of sites; let idx = index" detail-none>
|
||||||
<ion-avatar item-start>
|
<ion-avatar item-start>
|
||||||
<img [src]="site.avatar" core-external-content [siteId]="site.id" alt="{{ 'core.pictureof' | translate:{$a: site.fullname} }}" role="presentation" onError="this.src='assets/img/user-avatar.png'">
|
<img [src]="site.avatar" core-external-content [siteId]="site.id" alt="{{ 'core.pictureof' | translate:{$a: site.fullname} }}" role="presentation" onError="this.src='assets/img/user-avatar.png'">
|
||||||
</ion-avatar>
|
</ion-avatar>
|
||||||
|
@ -22,7 +22,7 @@
|
||||||
<button *ngIf="showDelete" item-end ion-button icon-only clear color="danger" (click)="deleteSite($event, idx)" [attr.aria-label]="'core.delete' | translate">
|
<button *ngIf="showDelete" item-end ion-button icon-only clear color="danger" (click)="deleteSite($event, idx)" [attr.aria-label]="'core.delete' | translate">
|
||||||
<ion-icon name="trash"></ion-icon>
|
<ion-icon name="trash"></ion-icon>
|
||||||
</button>
|
</button>
|
||||||
</ion-item>
|
</a>
|
||||||
</ion-list>
|
</ion-list>
|
||||||
<ion-fab bottom right>
|
<ion-fab bottom right>
|
||||||
<button ion-fab (click)="add()" [attr.aria-label]="'core.add' | translate">
|
<button ion-fab (click)="add()" [attr.aria-label]="'core.add' | translate">
|
||||||
|
|
|
@ -15,12 +15,12 @@
|
||||||
<ion-item text-center *ngIf="(!handlers || !handlers.length) && !handlersLoaded">
|
<ion-item text-center *ngIf="(!handlers || !handlers.length) && !handlersLoaded">
|
||||||
<ion-spinner></ion-spinner>
|
<ion-spinner></ion-spinner>
|
||||||
</ion-item>
|
</ion-item>
|
||||||
<ion-item *ngFor="let handler of handlers" [ngClass]="['core-moremenu-handler', handler.class]" (click)="openHandler(handler)" title="{{ handler.title | translate }}" detail-push>
|
<a ion-item *ngFor="let handler of handlers" [ngClass]="['core-moremenu-handler', handler.class]" (click)="openHandler(handler)" title="{{ handler.title | translate }}" detail-push>
|
||||||
<core-icon [name]="handler.icon" item-start></core-icon>
|
<core-icon [name]="handler.icon" item-start></core-icon>
|
||||||
<p>{{ handler.title | translate}}</p>
|
<p>{{ handler.title | translate}}</p>
|
||||||
<ion-badge item-end *ngIf="handler.showBadge" [hidden]="handler.loading || !handler.badge">{{badge}}</ion-badge>
|
<ion-badge item-end *ngIf="handler.showBadge" [hidden]="handler.loading || !handler.badge">{{badge}}</ion-badge>
|
||||||
<ion-spinner item-end *ngIf="handler.showBadge && handler.loading"></ion-spinner>
|
<ion-spinner item-end *ngIf="handler.showBadge && handler.loading"></ion-spinner>
|
||||||
</ion-item>
|
</a>
|
||||||
<div *ngFor="let item of customItems" class="core-moremenu-customitem">
|
<div *ngFor="let item of customItems" class="core-moremenu-customitem">
|
||||||
<a ion-item *ngIf="item.type != 'embedded'" [href]="item.url" core-link [capture]="item.type == 'app'" [inApp]="item.type == 'inappbrowser'" title="{{item.label}}">
|
<a ion-item *ngIf="item.type != 'embedded'" [href]="item.url" core-link [capture]="item.type == 'app'" [inApp]="item.type == 'inappbrowser'" title="{{item.label}}">
|
||||||
<core-icon [name]="item.icon" item-start></core-icon>
|
<core-icon [name]="item.icon" item-start></core-icon>
|
||||||
|
|
|
@ -8,32 +8,32 @@
|
||||||
<core-split-view>
|
<core-split-view>
|
||||||
<ion-content>
|
<ion-content>
|
||||||
<ion-list>
|
<ion-list>
|
||||||
<ion-item (click)="openHandler('CoreSettingsGeneralPage')" [title]="'core.settings.general' | translate" [class.core-split-item-selected]="'CoreSettingsGeneralPage' == selectedPage" detail-push>
|
<a ion-item (click)="openHandler('CoreSettingsGeneralPage')" [title]="'core.settings.general' | translate" [class.core-split-item-selected]="'CoreSettingsGeneralPage' == selectedPage" detail-push>
|
||||||
<ion-icon name="construct" item-start></ion-icon>
|
<ion-icon name="construct" item-start></ion-icon>
|
||||||
<p>{{ 'core.settings.general' | translate }}</p>
|
<p>{{ 'core.settings.general' | translate }}</p>
|
||||||
</ion-item>
|
</a>
|
||||||
<ion-item (click)="openHandler('CoreSettingsSpaceUsagePage')" [title]="'core.settings.spaceusage' | translate" [class.core-split-item-selected]="'CoreSettingsSpaceUsagePage' == selectedPage" detail-push>
|
<a ion-item (click)="openHandler('CoreSettingsSpaceUsagePage')" [title]="'core.settings.spaceusage' | translate" [class.core-split-item-selected]="'CoreSettingsSpaceUsagePage' == selectedPage" detail-push>
|
||||||
<ion-icon name="stats" item-start></ion-icon>
|
<ion-icon name="stats" item-start></ion-icon>
|
||||||
<p>{{ 'core.settings.spaceusage' | translate }}</p>
|
<p>{{ 'core.settings.spaceusage' | translate }}</p>
|
||||||
</ion-item>
|
</a>
|
||||||
<ion-item (click)="openHandler('CoreSettingsSynchronizationPage')" [title]="'core.settings.synchronization' | translate" [class.core-split-item-selected]="'CoreSettingsSynchronizationPage' == selectedPage" detail-push>
|
<a ion-item (click)="openHandler('CoreSettingsSynchronizationPage')" [title]="'core.settings.synchronization' | translate" [class.core-split-item-selected]="'CoreSettingsSynchronizationPage' == selectedPage" detail-push>
|
||||||
<ion-icon name="sync" item-start></ion-icon>
|
<ion-icon name="sync" item-start></ion-icon>
|
||||||
<p>{{ 'core.settings.synchronization' | translate }}</p>
|
<p>{{ 'core.settings.synchronization' | translate }}</p>
|
||||||
</ion-item>
|
</a>
|
||||||
<ion-item *ngIf="isIOS" (click)="openHandler('CoreSharedFilesListPage', {manage: true})" [title]="'core.sharedfiles.sharedfiles' | translate" [class.core-split-item-selected]="'CoreSharedFilesListPage' == selectedPage" detail-push>
|
<a ion-item *ngIf="isIOS" (click)="openHandler('CoreSharedFilesListPage', {manage: true})" [title]="'core.sharedfiles.sharedfiles' | translate" [class.core-split-item-selected]="'CoreSharedFilesListPage' == selectedPage" detail-push>
|
||||||
<ion-icon name="folder" item-start></ion-icon>
|
<ion-icon name="folder" item-start></ion-icon>
|
||||||
<p>{{ 'core.sharedfiles.sharedfiles' | translate }}</p>
|
<p>{{ 'core.sharedfiles.sharedfiles' | translate }}</p>
|
||||||
</ion-item>
|
</a>
|
||||||
|
|
||||||
<ion-item *ngFor="let handler of handlers" [ngClass]="['core-settings-handler', handler.class]" (click)="openHandler(handler.page, handler.params)" [title]="handler.title | translate" detail-push [class.core-split-item-selected]="handler.page == selectedPage">
|
<a ion-item *ngFor="let handler of handlers" [ngClass]="['core-settings-handler', handler.class]" (click)="openHandler(handler.page, handler.params)" [title]="handler.title | translate" detail-push [class.core-split-item-selected]="handler.page == selectedPage">
|
||||||
<core-icon [name]="handler.icon" item-start *ngIf="handler.icon"></core-icon>
|
<core-icon [name]="handler.icon" item-start *ngIf="handler.icon"></core-icon>
|
||||||
<p>{{ handler.title | translate}}</p>
|
<p>{{ handler.title | translate}}</p>
|
||||||
</ion-item>
|
</a>
|
||||||
|
|
||||||
<ion-item (click)="openHandler('CoreSettingsAboutPage')" [title]="'core.settings.about' | translate" [class.core-split-item-selected]="'CoreSettingsAboutPage' == selectedPage" detail-push>
|
<a ion-item (click)="openHandler('CoreSettingsAboutPage')" [title]="'core.settings.about' | translate" [class.core-split-item-selected]="'CoreSettingsAboutPage' == selectedPage" detail-push>
|
||||||
<ion-icon name="contacts" item-start></ion-icon>
|
<ion-icon name="contacts" item-start></ion-icon>
|
||||||
<p>{{ 'core.settings.about' | translate }}</p>
|
<p>{{ 'core.settings.about' | translate }}</p>
|
||||||
</ion-item>
|
</a>
|
||||||
</ion-list>
|
</ion-list>
|
||||||
</ion-content>
|
</ion-content>
|
||||||
</core-split-view>
|
</core-split-view>
|
||||||
|
|
Loading…
Reference in New Issue