Skip to content

Commit 4f9adba

Browse files
authored
Merge pull request #2384 from crazyserver/kietchan-MOBILE-3249_integration
Kietchan mobile 3249 integration
2 parents 221b1f5 + ba593fe commit 4f9adba

File tree

6 files changed

+36
-3
lines changed

6 files changed

+36
-3
lines changed

scripts/langindex.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
"addon.block_myoverview.nocourses": "block_myoverview",
5050
"addon.block_myoverview.past": "block_myoverview",
5151
"addon.block_myoverview.pluginname": "block_myoverview",
52+
"addon.block_myoverview.shortname": "block_myoverview",
5253
"addon.block_myoverview.title": "block_myoverview",
5354
"addon.block_newsitems.pluginname": "block_news_items",
5455
"addon.block_onlineusers.pluginname": "block_online_users",

src/addon/block/myoverview/components/myoverview/addon-block-myoverview.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ <h2>{{ 'addon.block_myoverview.pluginname' | translate }}</h2>
1111
<core-context-menu item-end>
1212
<core-context-menu-item *ngIf="loaded && showFilterSwitchButton()" [priority]="1000" [content]="'core.courses.filtermycourses' | translate" (action)="switchFilter()" iconAction="funnel" (onClosed)="switchFilterClosed()"></core-context-menu-item>
1313
<core-context-menu-item *ngIf="loaded && showSortFilter" [priority]="900" content="{{('core.sortby' | translate) + ' ' + ('addon.block_myoverview.title' | translate)}}" (action)="switchSort('fullname')" [iconAction]="sort == 'fullname' ? 'radio-button-on' : 'radio-button-off'"></core-context-menu-item>
14-
<core-context-menu-item *ngIf="loaded && showSortFilter" [priority]="800" content="{{('core.sortby' | translate) + ' ' + ('addon.block_myoverview.lastaccessed' | translate)}}" (action)="switchSort('lastaccess')" [iconAction]="sort == 'lastaccess' ? 'radio-button-on' : 'radio-button-off'"></core-context-menu-item>
14+
<core-context-menu-item *ngIf="loaded && showSortFilter && showSortByShortName" [priority]="800" content="{{('core.sortby' | translate) + ' ' + ('addon.block_myoverview.shortname' | translate)}}" (action)="switchSort('shortname')" [iconAction]="sort == 'shortname' ? 'radio-button-on' : 'radio-button-off'"></core-context-menu-item>
15+
<core-context-menu-item *ngIf="loaded && showSortFilter" [priority]="700" content="{{('core.sortby' | translate) + ' ' + ('addon.block_myoverview.lastaccessed' | translate)}}" (action)="switchSort('lastaccess')" [iconAction]="sort == 'lastaccess' ? 'radio-button-on' : 'radio-button-off'"></core-context-menu-item>
1516
</core-context-menu>
1617
</ion-item-divider>
1718
<core-loading [hideUntil]="loaded" class="core-loading-center">

src/addon/block/myoverview/components/myoverview/myoverview.ts

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ export class AddonBlockMyOverviewComponent extends CoreBlockBaseComponent implem
8383
protected updateSiteObserver;
8484
protected courseIds = [];
8585
protected fetchContentDefaultError = 'Error getting my overview data.';
86+
protected showSortByShortName = false;
8687

8788
constructor(injector: Injector,
8889
protected coursesProvider: CoreCoursesProvider,
@@ -181,6 +182,18 @@ export class AddonBlockMyOverviewComponent extends CoreBlockBaseComponent implem
181182
const showCategories = config && config.displaycategories && config.displaycategories.value == '1';
182183

183184
return this.coursesHelper.getUserCoursesWithOptions(this.sort, null, null, showCategories).then((courses) => {
185+
// Check to show sort by short name only if the text is visible.
186+
if (courses.length > 0) {
187+
const sampleCourse = courses[0];
188+
this.showSortByShortName = sampleCourse.displayname && sampleCourse.shortname &&
189+
sampleCourse.fullname != sampleCourse.displayname;
190+
}
191+
192+
// Rollback to sort by full name if user is sorting by short name then Moodle web change the config.
193+
if (!this.showSortByShortName && this.sort === 'shortname') {
194+
this.switchSort('fullname');
195+
}
196+
184197
this.courseIds = courses.map((course) => {
185198
return course.id;
186199
});
@@ -395,7 +408,7 @@ export class AddonBlockMyOverviewComponent extends CoreBlockBaseComponent implem
395408
this.courses.allincludinghidden = courses;
396409

397410
if (this.showSortFilter) {
398-
if (this.sort == 'lastaccess') {
411+
if (this.sort == 'lastaccess') {
399412
courses.sort((a, b) => {
400413
return b.lastaccess - a.lastaccess;
401414
});
@@ -404,6 +417,14 @@ export class AddonBlockMyOverviewComponent extends CoreBlockBaseComponent implem
404417
const compareA = a.fullname.toLowerCase(),
405418
compareB = b.fullname.toLowerCase();
406419

420+
return compareA.localeCompare(compareB);
421+
});
422+
} else if (this.sort == 'shortname') {
423+
courses.sort((a, b) => {
424+
const compareA = a.shortname.toLowerCase(),
425+
compareB = b.shortname.toLowerCase();
426+
compareA.localeCompare();
427+
407428
return compareA.localeCompare(compareB);
408429
});
409430
}

src/addon/block/myoverview/lang/en.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,6 @@
1010
"nocourses": "No courses",
1111
"past": "Past",
1212
"pluginname": "Course overview",
13+
"shortname": "Short name",
1314
"title": "Course name"
14-
}
15+
}

src/assets/lang/en.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
"addon.block_myoverview.nocourses": "No courses",
5050
"addon.block_myoverview.past": "Past",
5151
"addon.block_myoverview.pluginname": "Course overview",
52+
"addon.block_myoverview.shortname": "Short name",
5253
"addon.block_myoverview.title": "Course name",
5354
"addon.block_newsitems.pluginname": "Latest announcements",
5455
"addon.block_onlineusers.pluginname": "Online users",

src/core/courses/providers/helper.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,14 @@ export class CoreCoursesHelperProvider {
212212
return b.timemodified - a.timemodified;
213213
});
214214
break;
215+
case 'shortname':
216+
courses.sort((a, b) => {
217+
const compareA = a.shortname.toLowerCase(),
218+
compareB = b.shortname.toLowerCase();
219+
220+
return compareA.localeCompare(compareB);
221+
});
222+
break;
215223
default:
216224
// Sort not implemented. Do not sort.
217225
}

0 commit comments

Comments
 (0)