[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/mod/scorm/ -> view.js (source)

   1  M.mod_scormform = {};
   2  M.mod_scormform.init = function(Y) {
   3      var scormform = Y.one('#scormviewform');
   4      var cwidth = scormplayerdata.cwidth;
   5      var cheight = scormplayerdata.cheight;
   6      var poptions = scormplayerdata.popupoptions;
   7      var launch = scormplayerdata.launch;
   8      var currentorg = scormplayerdata.currentorg;
   9      var sco = scormplayerdata.sco;
  10      var scorm = scormplayerdata.scorm;
  11      var launch_url = M.cfg.wwwroot + "/mod/scorm/player.php?a=" + scorm + "&currentorg=" + currentorg + "&scoid=" + sco + "&sesskey=" + M.cfg.sesskey + "&display=popup";
  12      var course_url = scormplayerdata.courseurl;
  13      var winobj = null;
  14  
  15      poptions = poptions + ',resizable=yes'; // Added for IE (MDL-32506).
  16  
  17      if ((cwidth == 100) && (cheight == 100)) {
  18          poptions = poptions + ',width=' + screen.availWidth + ',height=' + screen.availHeight + ',left=0,top=0';
  19      } else {
  20          if (cwidth <= 100) {
  21              cwidth = Math.round(screen.availWidth * cwidth / 100);
  22          }
  23          if (cheight <= 100) {
  24              cheight = Math.round(screen.availHeight * cheight / 100);
  25          }
  26          poptions = poptions + ',width=' + cwidth + ',height=' + cheight;
  27      }
  28  
  29      // Hide the form and toc if it exists - we don't want to allow multiple submissions when a window is open.
  30      var scormload = function () {
  31          if (scormform) {
  32              scormform.hide();
  33          }
  34  
  35          var scormtoc = Y.one('#toc');
  36          if (scormtoc) {
  37              scormtoc.hide();
  38          }
  39          // Hide the intro and display a message to the user if the window is closed.
  40          var scormintro = Y.one('#intro');
  41          scormintro.setHTML('<a href="' + course_url + '">' + M.util.get_string('popuplaunched', 'scorm') + '</a>');
  42      }
  43  
  44      // When pop-up is closed return to course homepage.
  45      var scormunload = function () {
  46          // Onunload is called multiple times in the SCORM window - we only want to handle when it is actually closed.
  47          setTimeout(function() {
  48              if (winobj.closed) {
  49                  // Redirect the parent window to the course homepage.
  50                  parent.window.location = course_url;
  51              }
  52          }, 800)
  53      }
  54  
  55      var scormredirect = function (winobj) {
  56          Y.on('load', scormload, winobj);
  57          Y.on('unload', scormunload, winobj);
  58          // Check to make sure pop-up has been launched - if not display a warning,
  59          // this shouldn't happen as the pop-up here is launched on user action but good to make sure.
  60          setTimeout(function() {
  61              if (!winobj) {
  62                  var scormintro = Y.one('#intro');
  63                  scormintro.setHTML(M.util.get_string('popupsblocked', 'scorm'));
  64              }}, 800);
  65      }
  66  
  67      // Set mode and newattempt correctly.
  68      var setlaunchoptions = function() {
  69          var mode = Y.one('#scormviewform input[name=mode]:checked');
  70          if (mode) {
  71              var modevalue = mode.get('value');
  72              launch_url += '&mode=' + (modevalue ? modevalue : 'normal');
  73          } else {
  74              launch_url += '&mode=normal';
  75          }
  76  
  77          var newattempt = Y.one('#scormviewform #a');
  78          launch_url += (newattempt && newattempt.get('checked') ? '&newattempt=on' : '');
  79      }
  80  
  81      if (launch == true) {
  82          setlaunchoptions();
  83          winobj = window.open(launch_url,'Popup', poptions);
  84          this.target = 'Popup';
  85          scormredirect(winobj);
  86          winobj.opener = null;
  87      }
  88      // Listen for view form submit and generate popup on user interaction.
  89      if (scormform) {
  90          Y.on('submit', function(e) {
  91              setlaunchoptions();
  92              winobj = window.open(launch_url, 'Popup', poptions);
  93              this.target = 'Popup';
  94              scormredirect(winobj);
  95              winobj.opener = null;
  96              e.preventDefault();
  97          }, scormform);
  98      }
  99  }


Generated: Thu Aug 11 10:00:09 2016 Cross-referenced by PHPXref 0.7.1