Skip to content

Commit 2fb4089

Browse files
authored
Merge pull request #2454 from crazyserver/MOBILE-3426
MOBILE-3426 scorm: Avoid using relative sizes
2 parents da93462 + 18f4153 commit 2fb4089

File tree

2 files changed

+29
-18
lines changed

2 files changed

+29
-18
lines changed

src/addon/mod/scorm/pages/player/player.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
<ion-content>
1414
<core-loading [hideUntil]="loaded">
1515
<core-navigation-bar [previous]="previousSco" [next]="nextSco" (action)="loadSco($event)"></core-navigation-bar>
16-
<core-iframe *ngIf="loaded && src" [src]="src" [iframeWidth]="scorm.popup ? scorm.width : undefined" [iframeHeight]="scorm.popup ? scorm.height : undefined"></core-iframe>
16+
<core-iframe *ngIf="loaded && src" [src]="src" [iframeWidth]="scormWidth" [iframeHeight]="scormHeight"></core-iframe>
1717
<p *ngIf="!src && errorMessage">{{ errorMessage | translate }}</p>
1818
</core-loading>
1919
</ion-content>

src/addon/mod/scorm/pages/player/player.ts

Lines changed: 28 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import { IonicPage, NavParams, ModalController } from 'ionic-angular';
1717
import { CoreEventsProvider } from '@providers/events';
1818
import { CoreSitesProvider } from '@providers/sites';
1919
import { CoreSyncProvider } from '@providers/sync';
20-
import { CoreDomUtilsProvider } from '@providers/utils/dom';
20+
import { CoreDomUtils } from '@providers/utils/dom';
2121
import { CoreTimeUtilsProvider } from '@providers/utils/time';
2222
import { CoreIonTabsComponent } from '@components/ion-tabs/ion-tabs';
2323
import { AddonModScormProvider, AddonModScormAttemptCountResult } from '../../providers/scorm';
@@ -46,6 +46,8 @@ export class AddonModScormPlayerPage implements OnInit, OnDestroy {
4646
src: string; // Iframe src.
4747
errorMessage: string; // Error message.
4848
accessInfo: any; // Access information.
49+
scormWidth: null; // Width applied to scorm iframe.
50+
scormHeight: null; // Height applied to scorm iframe.
4951

5052
protected siteId: string;
5153
protected mode: string; // Mode to play the SCORM.
@@ -65,11 +67,18 @@ export class AddonModScormPlayerPage implements OnInit, OnDestroy {
6567
protected launchPrevObserver: any;
6668
protected goOfflineObserver: any;
6769

68-
constructor(navParams: NavParams, protected modalCtrl: ModalController, protected eventsProvider: CoreEventsProvider,
69-
protected sitesProvider: CoreSitesProvider, protected syncProvider: CoreSyncProvider,
70-
protected domUtils: CoreDomUtilsProvider, protected timeUtils: CoreTimeUtilsProvider,
71-
protected scormProvider: AddonModScormProvider, protected scormHelper: AddonModScormHelperProvider,
72-
protected scormSyncProvider: AddonModScormSyncProvider, protected tabs: CoreIonTabsComponent) {
70+
constructor(
71+
navParams: NavParams,
72+
protected modalCtrl: ModalController,
73+
protected eventsProvider: CoreEventsProvider,
74+
protected sitesProvider: CoreSitesProvider,
75+
protected syncProvider: CoreSyncProvider,
76+
protected timeUtils: CoreTimeUtilsProvider,
77+
protected scormProvider: AddonModScormProvider,
78+
protected scormHelper: AddonModScormHelperProvider,
79+
protected scormSyncProvider: AddonModScormSyncProvider,
80+
protected tabs: CoreIonTabsComponent
81+
) {
7382

7483
this.scorm = navParams.get('scorm') || {};
7584
this.mode = navParams.get('mode') || AddonModScormProvider.MODENORMAL;
@@ -95,12 +104,14 @@ export class AddonModScormPlayerPage implements OnInit, OnDestroy {
95104
if (this.scorm.popup) {
96105
this.tabs.changeVisibility(false);
97106

98-
// If we receive a value <= 100 we need to assume it's a percentage.
99-
if (this.scorm.width <= 100) {
100-
this.scorm.width = this.scorm.width + '%';
101-
}
102-
if (this.scorm.height <= 100) {
103-
this.scorm.height = this.scorm.height + '%';
107+
// If we receive a value > 100 we assume it's a fixed pixel size.
108+
if (this.scorm.width > 100) {
109+
this.scormWidth = this.scorm.width;
110+
111+
// Only get fixed size on height if width is also fixed.
112+
if (this.scorm.height > 100) {
113+
this.scormHeight = this.scorm.height;
114+
}
104115
}
105116
}
106117

@@ -111,7 +122,7 @@ export class AddonModScormPlayerPage implements OnInit, OnDestroy {
111122
const promise = this.newAttempt ? this.setStartTime(this.currentSco.id) : Promise.resolve();
112123

113124
return promise.catch((error) => {
114-
this.domUtils.showErrorModalDefault(error, 'addon.mod_scorm.errorgetscorm', true);
125+
CoreDomUtils.instance.showErrorModalDefault(error, 'addon.mod_scorm.errorgetscorm', true);
115126
}).finally(() => {
116127
// Load SCO.
117128
this.loadSco(this.currentSco);
@@ -152,7 +163,7 @@ export class AddonModScormPlayerPage implements OnInit, OnDestroy {
152163
// Wait a bit to prevent collisions between this store and SCORM API's store.
153164
setTimeout(() => {
154165
this.scormHelper.convertAttemptToOffline(this.scorm, this.attempt).catch((error) => {
155-
this.domUtils.showErrorModalDefault(error, 'core.error', true);
166+
CoreDomUtils.instance.showErrorModalDefault(error, 'core.error', true);
156167
}).then(() => {
157168
this.refreshToc();
158169
});
@@ -248,7 +259,7 @@ export class AddonModScormPlayerPage implements OnInit, OnDestroy {
248259
return Promise.all(promises);
249260
});
250261
}).catch((error) => {
251-
this.domUtils.showErrorModalDefault(error, 'addon.mod_scorm.errorgetscorm', true);
262+
CoreDomUtils.instance.showErrorModalDefault(error, 'addon.mod_scorm.errorgetscorm', true);
252263
});
253264
});
254265
}
@@ -372,7 +383,7 @@ export class AddonModScormPlayerPage implements OnInit, OnDestroy {
372383

373384
return this.scormProvider.saveTracks(sco.id, this.attempt, tracks, this.scorm, true);
374385
}).catch((error) => {
375-
this.domUtils.showErrorModalDefault(error, 'core.error', true);
386+
CoreDomUtils.instance.showErrorModalDefault(error, 'core.error', true);
376387
});
377388
}
378389
});
@@ -432,7 +443,7 @@ export class AddonModScormPlayerPage implements OnInit, OnDestroy {
432443
}).then(() => {
433444
return this.fetchToc();
434445
}).catch((error) => {
435-
this.domUtils.showErrorModalDefault(error, 'addon.mod_scorm.errorgetscorm', true);
446+
CoreDomUtils.instance.showErrorModalDefault(error, 'addon.mod_scorm.errorgetscorm', true);
436447
});
437448
}
438449

0 commit comments

Comments
 (0)