Diff for /rat/client/parameter.html between versions 1.85 and 1.86

version 1.85, 2020/12/23 21:20:36 version 1.86, 2021/08/04 19:59:12
Line 416  function validateInterval() { Line 416  function validateInterval() {
   
 function validateDeepLink() {  function validateDeepLink() {
     var sform=choices.document.forms.sch;      var sform=choices.document.forms.sch;
     svalue = sform.deeplinklisted.options[sform.deeplinklisted.selectedIndex].value+',';      svalue = sform.deeplinkstate.options[sform.deeplinkstate.selectedIndex].value+',';
       svalue += sform.deeplinkothers.options[sform.deeplinkothers.selectedIndex].value+','; 
       svalue += sform.deeplinklisted.options[sform.deeplinklisted.selectedIndex].value+',';
     svalue += sform.deeplinkacc.options[sform.deeplinkacc.selectedIndex].value+',';      svalue += sform.deeplinkacc.options[sform.deeplinkacc.selectedIndex].value+',';
     var keyRegExp = /^[a-zA-Z\d_.!@#$%^&*()+=-]+$/;      var keyRegExp = /^[a-zA-Z\d_.!@#$%^&*()+=-]+$/;
     var numRegExp = /^\d+$/;      var numRegExp = /^\d+$/;
     if (sform.deeplinktypes.length) {      if (sform.deeplinkprotect.length) {
         for (var i=0; i<sform.deeplinktypes.length; i++) {          for (var i=0; i<sform.deeplinkprotect.length; i++) {
             if (sform.deeplinktypes[i].checked) {              if (sform.deeplinkprotect[i].checked) {
                 svalue += sform.deeplinktypes[i].value;                  svalue += sform.deeplinkprotect[i].value;
                 if (sform.deeplinktypes[i].value == 'key') {                  if (sform.deeplinkprotect[i].value == 'key') {
                     var posskey = sform.deeplinkkey.value;                      var posskey = sform.deeplinkkey.value;
                     posskey = posskey.replace(/^\s+|\s+$/g,'');                      posskey = posskey.replace(/^\s+|\s+$/g,'');
                     if (keyRegExp.test(posskey)) {                      if (keyRegExp.test(posskey)) {
Line 434  function validateDeepLink() { Line 436  function validateDeepLink() {
                               'or choose a different supported link type.');                                'or choose a different supported link type.');
                         return;                           return; 
                     }                      }
                 } else if (sform.deeplinktypes[i].value == 'lti') {                  } else if (sform.deeplinkprotect[i].value == 'ltic') {
                     var posslti = sform.linkposslti.options[sform.linkposslti.selectedIndex].value;                      var possltic = sform.linkpossltic.options[sform.linkpossltic.selectedIndex].value;
                     if ((numRegExp.test(posslti)) && (posslti > 0)) {                      if ((numRegExp.test(possltic)) && (possltic > 0)) {
                         svalue += ':'+posslti;                          svalue += ':'+possltic;
                       } else {
                           alert('Please select an LTI launcher, or choose a different supported link type.');
                           return;
                       }
                   } else if (sform.deeplinkprotect[i].value == 'ltid') {
                       var possltid = sform.linkpossltid.options[sform.linkpossltid.selectedIndex].value;
                       if ((numRegExp.test(possltid)) && (possltid > 0)) {
                           svalue += ':'+possltid;
                     } else {                      } else {
                         alert('Please select an LTI launcher, or choose a different supported link type.');                          alert('Please select an LTI launcher, or choose a different supported link type.');
                         return;                          return;
Line 471  function validateDeepLink() { Line 481  function validateDeepLink() {
   
 function toggleDeepLink(caller) {  function toggleDeepLink(caller) {
     var sform=choices.document.forms.sch;      var sform=choices.document.forms.sch;
     if ((caller == 'types') && (sform.deeplinktypes.length)) {      if ((caller == 'protect') && (sform.deeplinkprotect.length)) {
         var frame = window.frames["choices"];          var frame = window.frames["choices"];
         for (var i=0; i<sform.deeplinktypes.length; i++) {          for (var i=0; i<sform.deeplinkprotect.length; i++) {
             if (sform.deeplinktypes[i].checked) {              if (sform.deeplinkprotect[i].checked) {
                 if (sform.deeplinktypes[i].value == 'key') {                  if (frame.document.getElementById('deeplinkkey')) {
                     if (frame.document.getElementById('deeplinkkey')) {                      if (sform.deeplinkprotect[i].value == 'key') {
                         frame.document.getElementById('deeplinkkey').type='text';                          frame.document.getElementById('deeplinkkey').type='text';
                     }                      } else {
                     if (frame.document.getElementById('deeplinkltidiv')) {  
                         frame.document.getElementById('deeplinkltidiv').style.display='none';  
                     }  
                 } else {  
                     if (frame.document.getElementById('deeplinkkey')) {  
                         frame.document.getElementById('deeplinkkey').type='hidden';                          frame.document.getElementById('deeplinkkey').type='hidden';
                     }                      }
                     if (frame.document.getElementById('deeplinkltidiv')) {                  }
                         if (sform.deeplinktypes[i].value == 'lti') {                  if (frame.document.getElementById('deeplinklticdiv')) {
                             frame.document.getElementById('deeplinkltidiv').style.display='block';                      if (sform.deeplinkprotect[i].value == 'ltic') {
                         } else {                          frame.document.getElementById('deeplinklticdiv').style.display='block';
                             frame.document.getElementById('deeplinkltidiv').style.display='none';                      } else {
                         }                          frame.document.getElementById('deeplinklticdiv').style.display='none';
                       }
                   }
                   if (frame.document.getElementById('deeplinkltiddiv')) {
                       if (sform.deeplinkprotect[i].value == 'ltid') {
                           frame.document.getElementById('deeplinkltiddiv').style.display='block';
                       } else {
                           frame.document.getElementById('deeplinkltiddiv').style.display='none';
                     }                      }
                 }                  }
                 break;                  break;
Line 1167  function draw() { Line 1179  function draw() {
        }         }
        if (pscat=='deeplink') {         if (pscat=='deeplink') {
            var deeplinkvals = new Array();             var deeplinkvals = new Array();
            var linktypeparts = new Array();             var linkprotectparts = new Array();
            var ltikeyRegExp = /^(lti|key):(\w+)$/;             var ltikeyRegExp = /^(ltic|ltid|key):(\w+)$/;
            var dlinkkeysty = 'hidden';             var dlinkkeysty = 'hidden';
            var dlinkkeyval = '';             var dlinkkeyval = '';
            var dlinkltidivsty = 'none';             var dlinklticdivsty = 'none';
              var dlinkltiddivsty = 'none';
            var dlinkmenusdivsty = 'none';             var dlinkmenusdivsty = 'none';
            if ((svalue != '') && (svalue != null)) {             if ((svalue != '') && (svalue != null)) {
                deeplinkvals = svalue.split(',');                 deeplinkvals = svalue.split(',');
                if (ltikeyRegExp.test(deeplinkvals[2])) {                 if (ltikeyRegExp.test(deeplinkvals[4])) {
                    linktypeparts = deeplinkvals[2].split(':');                     linkprotectparts = deeplinkvals[4].split(':');
                    deeplinkvals[2] = linktypeparts[0];                     deeplinkvals[4] = linkprotectparts[0];
                    if (linktypeparts[0] == 'key') {                     if (linkprotectparts[0] == 'key') {
                        dlinkkeysty = 'text';                         dlinkkeysty = 'text';
                        dlinkkeyval = linktypeparts[1];                         dlinkkeyval = linkprotectparts[1];
                    } else if (linktypeparts[0] == 'lti') {                     } else if (linkprotectparts[0] == 'ltic') {
                        dlinkltidivsty = 'block';                         dlinklticdivsty = 'block';
                      } else if (linkprotectparts[0] == 'ltid') {
                          dlinkltiddivsty = 'block';
                    }                     }
                }                 }
                if (deeplinkvals[3] >= 1) {                 if (deeplinkvals[5] >= 1) {
                    dlinkmenusdivsty = 'inline-block';                     dlinkmenusdivsty = 'inline-block';
                }                 }
            } else {             } else {
                deeplinkvals = ['full','res','any','0'];                 deeplinkvals = ['off','unhide','full','res','','0'];
            }             }
              var deeplinkstate = new Array();
              deeplinkstate = ['only','off','both'];
              var deeplinkstatetxt = new Array();
              deeplinkstatetxt = ['deep only','deeplink off','regular + deep'];
              var deeplinkothers = new Array();
              deeplinkothers = ['hide','unhide'];
              var deeplinkotherstxt = new Array();
              deeplinkotherstxt = ['Hidden','Unhidden'];
            var deeplinklisting = new Array();             var deeplinklisting = new Array();
            deeplinklisting = ['full','absent','grades','details','datestatus'];             deeplinklisting = ['full','absent','grades','details','datestatus'];
            var deeplinklisttxt = new Array();             var deeplinklisttxt = new Array();
Line 1199  function draw() { Line 1222  function draw() {
            deeplinkscopes = ['res','map','rec'];             deeplinkscopes = ['res','map','rec'];
            var deeplinkscopetxt = new Array();             var deeplinkscopetxt = new Array();
            deeplinkscopetxt = ['resource only','enclosing map/folder','recursive map/folder'];             deeplinkscopetxt = ['resource only','enclosing map/folder','recursive map/folder'];
            var deeplinkurls = new Array();             var deeplinkprotect = new Array();
            deeplinkurls = ['any','only','key','lti'];             deeplinkprotect = ['none','key','ltic','ltid'];
            tablestart('Deep-linked items');             tablestart('Deep-linked items');
              choicewrite('<tr><td>Access status?</td><td>');
              choicewrite('<select name="deeplinkstate">');
              for (var i=0; i<deeplinkstate.length; i++) {
                  choicewrite('<option value="'+deeplinkstate[i]+'"');
                  if (deeplinkvals[0] == deeplinkstate[i]) {
                      choicewrite(' selected="selected"');
                  }
                  choicewrite('>'+deeplinkstatetxt[i]+'</option>');
              }
              choicewrite('</select></td></tr>');
              choicewrite('<tr><td>Hide other resources?</td><td>');
              choicewrite('<select name="deeplinkothers">');
              for (var i=0; i<deeplinkothers.length; i++) {
                  choicewrite('<option value="'+deeplinkothers[i]+'"');
                  if (deeplinkvals[1] == deeplinkothers[i]) {
                      choicewrite(' selected="selected"');
                  }
                  choicewrite('>'+deeplinkotherstxt[i]+'</option>');
              }
              choicewrite('</select></td></tr>');
            choicewrite('<tr><td>In Contents + Gradebook?</td><td>');             choicewrite('<tr><td>In Contents + Gradebook?</td><td>');
            choicewrite('<select name="deeplinklisted">');             choicewrite('<select name="deeplinklisted">');
            for (var i=0; i<deeplinklisting.length; i++) {             for (var i=0; i<deeplinklisting.length; i++) {
                choicewrite('<option value="'+deeplinklisting[i]+'"');                 choicewrite('<option value="'+deeplinklisting[i]+'"');
                if (deeplinkvals[0] == deeplinklisting[i]) {                 if (deeplinkvals[2] == deeplinklisting[i]) {
                    choicewrite(' selected="selected"');                     choicewrite(' selected="selected"');
                }                 }
                choicewrite('>'+deeplinklisttxt[i]+'</option>');                 choicewrite('>'+deeplinklisttxt[i]+'</option>');
            }             }
            choicewrite('</select></td></tr>');             choicewrite('</select></td></tr>');
            choicewrite('<tr><td>Access scope via deep-link</td><td>');             choicewrite('<tr><td>Access scope for link</td><td>');
            choicewrite('<select name="deeplinkacc">');             choicewrite('<select name="deeplinkacc">');
            for (var i=0; i<deeplinkscopes.length; i++) {             for (var i=0; i<deeplinkscopes.length; i++) {
                choicewrite('<option value="'+deeplinkscopes[i]+'"');                 choicewrite('<option value="'+deeplinkscopes[i]+'"');
                if (deeplinkvals[1] == deeplinkscopes[i]) {                 if (deeplinkvals[3] == deeplinkscopes[i]) {
                    choicewrite(' selected="selected"');                     choicewrite(' selected="selected"');
                }                 }
                choicewrite('>'+deeplinkscopetxt[i]+'</option>');                 choicewrite('>'+deeplinkscopetxt[i]+'</option>');
            }             }
            choicewrite('</select></td></tr>');             choicewrite('</select></td></tr>');
            choicewrite('<tr><td>Supported Link Types</td><td>');             choicewrite('<tr><td>Link protection</td><td>');
            choicewrite('<span style="white-space: nowrap;"><label>');  
            choicewrite('<input name="deeplinktypes" value="any"'+  
                   ' type="radio" '+calldeeplink('types'));  
            if (deeplinkvals[2]=='any') { choicewrite(' checked="checked"'); }  
            choicewrite(' /> regular + deep</label></span><br />');  
            choicewrite('<span style="white-space: nowrap;"><label>');             choicewrite('<span style="white-space: nowrap;"><label>');
            choicewrite('<input name="deeplinktypes" value="only"'+             choicewrite('<input name="deeplinkprotect" value="none"'+
                   ' type="radio" '+calldeeplink('types'));                    ' type="radio" '+calldeeplink('protect'));
            if (deeplinkvals[2]=='only') { choicewrite(' checked="checked"'); }             if (deeplinkvals[4]=='none') { choicewrite(' checked="checked"'); }
            choicewrite(' /> deep only</label></span><br />');             choicewrite(' /> not in use</label>');
            choicewrite('<span style="white-space: nowrap;"><label>');             choicewrite('<input name="deeplinkprotect" value="key"'+
            choicewrite('<input name="deeplinktypes" value="key"'+                    ' type="radio" '+calldeeplink('protect'));
                   ' type="radio" '+calldeeplink('types'));             if (deeplinkvals[4]=='key') { choicewrite(' checked="checked"'); }
            if (deeplinkvals[2]=='key') { choicewrite(' checked="checked"'); }             choicewrite(' /> key access</label>');
            choicewrite(' /> deep with key</label>');  
            choicewrite('<input type="'+dlinkkeysty+'" name="deeplinkkey" id="deeplinkkey" value="'+dlinkkeyval+'" size="10" />');             choicewrite('<input type="'+dlinkkeysty+'" name="deeplinkkey" id="deeplinkkey" value="'+dlinkkeyval+'" size="10" />');
            choicewrite('</span><br />');             choicewrite('</span><br />');
   
            var possmenus = new Array();             var possmenus = new Array();
            if ((pextra != '') && (pextra != null)) {             if ((pextra != '') && (pextra != null)) {
                var ltiRegExp = /^lti_/;                 var lticRegExp = /^ltic_/;
                  var ltidRegExp = /^ltid_/;
                var menusRegExp = /^menus_/;                 var menusRegExp = /^menus_/;
                var extras = pextra.split('&');                 var extras = pextra.split('&');
                for (var i=0; i<extras.length; i++) {                 for (var i=0; i<extras.length; i++) {
                    if (ltiRegExp.test(extras[i])) {                     if (lticRegExp.test(extras[i])) {
                        extras[i] = extras[i].replace(ltiRegExp,'');                         extras[i] = extras[i].replace(lticRegExp,'');
                        var posslti = extras[i].split(',');                         var possltic = extras[i].split(',');
                        if (posslti.length >= 1) {                         if (possltic.length >= 1) {
                            var ltinums = new Array();                             var lticnums = new Array();
                            var ltititles = new Array();                             var ltictitles = new Array();
                            for (var j=0; j<posslti.length; j++) {                             for (var j=0; j<possltic.length; j++) {
                                var entries = posslti[j].split(':');                                 var entries = possltic[j].split(':');
                                ltinums[j] = entries[0];                                 lticnums[j] = entries[0];
                                ltititles[j] = decodeURIComponent(entries[1]);                                 ltictitles[j] = decodeURIComponent(entries[1]);
                            }                             }
                            if (ltinums.length) {                             if (lticnums.length) {
                                choicewrite('<span style="white-space: nowrap;"><label>');                                 choicewrite('<span style="white-space: nowrap;"><label>');
                                choicewrite('<input name="deeplinktypes" value="lti"'+                                 choicewrite('<input name="deeplinkprotect" value="ltic"'+
                                            ' type="radio" '+calldeeplink('types'));                                             ' type="radio" '+calldeeplink('protect'));
                                if (deeplinkvals[2]=='lti') { choicewrite(' checked="checked"'); }                                 if (deeplinkvals[4]=='ltic') { choicewrite(' checked="checked"'); }
                                choicewrite(' /> deep with LTI launch</label>');                                 choicewrite(' /> course LTI launch</label>');
                                choicewrite('<div id="deeplinkltidiv" style="display:'+dlinkltidivsty+'">');                                 choicewrite('<div id="deeplinklticdiv" style="display:'+dlinklticdivsty+'">');
                                choicewrite('<select name="linkposslti">');                                 choicewrite('<select name="linkpossltic">');
                                var sel='';                                 var sel='';
                                if (deeplinkvals[2]!='lti') {                                 if (deeplinkvals[4]!='ltic') {
                                    sel = ' selected="selected"';                                     sel = ' selected="selected"';
                                }                                 }
                                if (ltinums.length > 1) {                                 if (lticnums.length > 1) {
                                    choicewrite('<option value=""'+sel+'>Select</option>');                                     choicewrite('<option value=""'+sel+'>Select</option>');
                                }                                 }
                                for (var j=0; j<ltinums.length; j++) {                                 for (var j=0; j<lticnums.length; j++) {
                                    sel = '';                                     sel = '';
                                    if (deeplinkvals[2]=='lti') {                                     if (deeplinkvals[4]=='ltic') {
                                        if (linktypeparts.length) {                                         if (linkprotectparts.length) {
                                            if (ltinums[j] == linktypeparts[1]) {                                             if (lticnums[j] == linkprotectparts[1]) {
                                                sel = ' selected="selected"';                                                 sel = ' selected="selected"';
                                            }                                             }
                                        }                                         }
                                    }                                     }
                                    choicewrite('<option value="'+ltinums[j]+'"'+sel+'>'+ltititles[j]+'</option>');                                     choicewrite('<option value="'+lticnums[j]+'"'+sel+'>'+ltictitles[j]+'</option>');
                                }                                 }
                                choicewrite('</select></div></span><br />');                                 choicewrite('</select></div></span><br />');
                            }                             }
                        }                         }
                      } else if (ltidRegExp.test(extras[i])) {
                          extras[i] = extras[i].replace(ltidRegExp,'');
                          var possltid = extras[i].split(',');
                          if (possltid.length >= 1) {
                              var ltidnums = new Array();
                              var ltidtitles = new Array();
                              for (var j=0; j<possltid.length; j++) {
                                  var entries = possltid[j].split(':');
                                  ltidnums[j] = entries[0];
                                  ltidtitles[j] = decodeURIComponent(entries[1]);
                              }
                              if (ltidnums.length) {
                                  choicewrite('<span style="white-space: nowrap;"><label>');
                                  choicewrite('<input name="deeplinkprotect" value="ltid"'+
                                              ' type="radio" '+calldeeplink('protect'));
                                  if (deeplinkvals[4]=='ltid') { choicewrite(' checked="checked"'); }
                                  choicewrite(' />domain LTI launch</label>');
                                  choicewrite('<div id="deeplinkltiddiv" style="display:'+dlinkltiddivsty+'">');
                                  choicewrite('<select name="linkpossltid">');
                                  var sel='';
                                  if (deeplinkvals[4]!='ltid') {
                                      sel = ' selected="selected"';
                                  }
                                  if (ltidnums.length > 1) {
                                      choicewrite('<option value=""'+sel+'>Select</option>');
                                  }
                                  for (var j=0; j<ltidnums.length; j++) {
                                      sel = '';
                                      if (deeplinkvals[4]=='ltid') {
                                          if (linkprotectparts.length) {
                                              if (ltidnums[j] == linkprotectparts[1]) {
                                                  sel = ' selected="selected"';
                                              }
                                          }
                                      }
                                      choicewrite('<option value="'+ltidnums[j]+'"'+sel+'>'+ltidtitles[j]+'</option>');
                                  }
                                  choicewrite('</select></div></span><br />');
                              }
                          }
   
                    } else if (menusRegExp.test(extras[i])) {                     } else if (menusRegExp.test(extras[i])) {
                        extras[i] = extras[i].replace(menusRegExp,'');                         extras[i] = extras[i].replace(menusRegExp,'');
                        possmenus = extras[i].split(',');                         possmenus = extras[i].split(',');
Line 1297  function draw() { Line 1376  function draw() {
            choicewrite('<span style="white-space: nowrap;"><label>');             choicewrite('<span style="white-space: nowrap;"><label>');
            choicewrite('<input name="deeplinkmenus" value="std"'+             choicewrite('<input name="deeplinkmenus" value="std"'+
                        ' type="radio" '+calldeeplink('menus'));                         ' type="radio" '+calldeeplink('menus'));
            if (deeplinkvals[3] == 0) {             if (deeplinkvals[5] == 0) {
                choicewrite(' checked="checked"');                 choicewrite(' checked="checked"');
            }             }
            choicewrite(' /> Standard (all menus)</label></span><br />');             choicewrite(' /> Standard (all menus)</label></span><br />');
Line 1305  function draw() { Line 1384  function draw() {
                choicewrite('<span style="white-space: nowrap;"><label>');                 choicewrite('<span style="white-space: nowrap;"><label>');
                choicewrite('<input name="deeplinkmenus" value="collnum"'+                 choicewrite('<input name="deeplinkmenus" value="collnum"'+
                            ' type="radio" '+calldeeplink('menus'));                             ' type="radio" '+calldeeplink('menus'));
                if (deeplinkvals[3] > 0) { choicewrite(' checked="checked"'); }                 if (deeplinkvals[5] > 0) { choicewrite(' checked="checked"'); }
                choicewrite(' /> Numbered collection</label>');                 choicewrite(' /> Numbered collection</label>');
                choicewrite('<div id="deeplinkmenusdiv" style="display:'+dlinkmenusdivsty+'">');                 choicewrite('<div id="deeplinkmenusdiv" style="display:'+dlinkmenusdivsty+'">');
                choicewrite('<select name="linkpossmenu">');                 choicewrite('<select name="linkpossmenu">');
                var sel='';                 var sel='';
                if (deeplinkvals[3] == 0) {                 if (deeplinkvals[5] == 0) {
                    sel = ' selected="selected"';                     sel = ' selected="selected"';
                }                 }
                if (possmenus.length > 1) {                 if (possmenus.length > 1) {
Line 1318  function draw() { Line 1397  function draw() {
                }                 }
                for (var i=0; i<possmenus.length; i++) {                 for (var i=0; i<possmenus.length; i++) {
                    sel = '';                     sel = '';
                    if (deeplinkvals[3] == possmenus[i]) {                     if (deeplinkvals[5] == possmenus[i]) {
                        sel = ' selected="selected"';                         sel = ' selected="selected"';
                    }                     }
                    choicewrite('<option value="'+possmenus[i]+'"'+sel+'>'+possmenus[i]+'</option>');                     choicewrite('<option value="'+possmenus[i]+'"'+sel+'>'+possmenus[i]+'</option>');

Removed from v.1.85  
changed lines
  Added in v.1.86


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>