version 1.290, 2011/06/03 13:00:39
|
version 1.296, 2011/12/11 13:23:24
|
Line 72 sub java_not_enabled {
|
Line 72 sub java_not_enabled {
|
sub coursepreflink { |
sub coursepreflink { |
my ($text,$category)=@_; |
my ($text,$category)=@_; |
if (&Apache::lonnet::allowed('opa',$env{'request.course.id'})) { |
if (&Apache::lonnet::allowed('opa',$env{'request.course.id'})) { |
return '<a href="'.&HTML::Entities::encode("/adm/courseprefs?phase=display&actions=$category",'<>&"').'"><span class="LC_setting">'.$text.'</span></a>'; |
return '<a target="_top" href="'.&HTML::Entities::encode("/adm/courseprefs?phase=display&actions=$category",'<>&"').'"><span class="LC_setting">'.$text.'</span></a>'; |
} else { |
} else { |
return ''; |
return ''; |
} |
} |
Line 95 sub direct_parm_link {
|
Line 95 sub direct_parm_link {
|
$filter=&entity_encode($filter); |
$filter=&entity_encode($filter); |
$part=&entity_encode($part); |
$part=&entity_encode($part); |
if (($symb) && (&Apache::lonnet::allowed('opa')) && ($target ne 'tex')) { |
if (($symb) && (&Apache::lonnet::allowed('opa')) && ($target ne 'tex')) { |
return "<a href='/adm/parmset?symb=$symb&filter=$filter&part=$part'><span class='LC_setting'>$linktext</span></a>"; |
return "<a target='_top' href='/adm/parmset?symb=$symb&filter=$filter&part=$part'><span class='LC_setting'>$linktext</span></a>"; |
} else { |
} else { |
return $linktext; |
return $linktext; |
} |
} |
Line 748 parameter setting wizard.
|
Line 748 parameter setting wizard.
|
sub pjump_javascript_definition { |
sub pjump_javascript_definition { |
my $Str = <<END; |
my $Str = <<END; |
function pjump(type,dis,value,marker,ret,call,hour,min,sec) { |
function pjump(type,dis,value,marker,ret,call,hour,min,sec) { |
parmwin=window.open("/adm/rat/parameter.html?type="+escape(type) |
openMyModal("/adm/rat/parameter.html?type="+escape(type) |
+"&value="+escape(value)+"&marker="+escape(marker) |
+"&value="+escape(value)+"&marker="+escape(marker) |
+"&return="+escape(ret) |
+"&return="+escape(ret) |
+"&call="+escape(call)+"&name="+escape(dis) |
+"&call="+escape(call)+"&name="+escape(dis) |
+"&defhour="+escape(hour)+"&defmin="+escape(min) |
+"&defhour="+escape(hour)+"&defmin="+escape(min) |
+"&defsec="+escape(sec),"LONCAPAparms", |
+"&defsec="+escape(sec)+"&modal=1",350,350,'no'); |
"height=350,width=350,scrollbars=no,menubar=no"); |
|
} |
} |
END |
END |
return $Str; |
return $Str; |
Line 1244 sub htmlareaheaders {
|
Line 1243 sub htmlareaheaders {
|
ENDEDITOR |
ENDEDITOR |
} |
} |
$s.=(<<ENDJQUERY); |
$s.=(<<ENDJQUERY); |
<script type="text/javascript" src="/adm/jQuery/js/jquery-1.3.2.min.js"></script> |
<script type="text/javascript" src="/adm/jQuery/js/jquery-1.6.2.min.js"></script> |
<script type="text/javascript" src="/adm/jQuery/js/jquery-ui-1.7.2.custom.min.js"></script> |
<script type="text/javascript" src="/adm/jQuery/js/jquery-ui-1.8.16.custom.min.js"></script> |
<link rel="stylesheet" type="text/css" href="/adm/jQuery/css/smoothness/jquery-ui-1.7.2.custom.css" /> |
<link rel="stylesheet" type="text/css" href="/adm/jQuery/css/smoothness/jquery-ui-1.8.16.custom.css" /> |
ENDJQUERY |
ENDJQUERY |
return $s; |
return $s; |
} |
} |
Line 2336 sub set_form_elements {
|
Line 2335 sub set_form_elements {
|
} |
} |
|
|
############################################## |
############################################## |
|
############################################## |
|
|
|
sub file_submissionchk_js { |
|
my ($turninpaths,$multiples) = @_; |
|
my $overwritewarn = &mt('File(s) you uploaded for your submission will overwrite existing file(s) submitted for this item').'\\n'. |
|
&mt('Continue submission and overwrite the file(s)?'); |
|
my $delfilewarn = &mt('You have indicated you wish to remove some files previously included in your submission.').'\\n'. |
|
&mt('Continue submission with these files removed?'); |
|
my ($turninpathtext,$multtext,$arrayindexofjs); |
|
if (ref($turninpaths) eq 'HASH') { |
|
foreach my $key (sort(keys(%{$turninpaths}))) { |
|
$turninpathtext .= " if (prefix == '$key') {\n". |
|
" return '$turninpaths->{$key}';\n". |
|
" }\n"; |
|
} |
|
} |
|
$turninpathtext .= " return '';\n"; |
|
if (ref($multiples) eq 'HASH') { |
|
foreach my $key (sort(keys(%{$multiples}))) { |
|
$multtext .= " if (prefix == '$key') {\n". |
|
" return '$multiples->{$key}';\n". |
|
" }\n"; |
|
} |
|
} |
|
$multtext .= " return '';\n"; |
|
|
|
$arrayindexofjs = &Apache::loncommon::javascript_array_indexof(); |
|
return <<"ENDSCRIPT"; |
|
<script type="text/javascript"> |
|
// <![CDATA[ |
|
|
|
function file_submission_check(formname,path,multiresp) { |
|
var elemnum = formname.elements.length; |
|
if (elemnum == 0) { |
|
return true; |
|
} |
|
var alloverwrites = []; |
|
var alldelconfirm = []; |
|
var result = []; |
|
var submitter; |
|
var subprefix; |
|
var allsub = getIndexByName(formname,'all_submit'); |
|
if (allsub == -1) { |
|
var idx = getIndexByName(formname,'submitted'); |
|
if (idx != -1) { |
|
var subval = String(formname.elements[idx].value); |
|
submitter = subval.replace(/^part_/,''); |
|
result = overwritten_check(formname,path,multiresp,submitter); |
|
alloverwrites.push.apply(alloverwrites,result['overwrite']); |
|
alldelconfirm.push.apply(alldelconfirm,result['delete']); |
|
} |
|
} else { |
|
if (formname.elements[allsub].type == 'submit') { |
|
var partsub = /^\\d+\\.\\d+_submit_.+\$/; |
|
var allprefixes = []; |
|
var allparts = []; |
|
for (var i=0; i<formname.elements.length; i++) { |
|
if (formname.elements[i].type == 'submit') { |
|
var elemname = formname.elements[i].name; |
|
var subname = String(elemname); |
|
var savesub = String(elemname); |
|
if (partsub.test(subname)) { |
|
var prefix = subname.replace(/_submit_.+\$/,''); |
|
if (allprefixes.indexOf(prefix) == -1) { |
|
allprefixes.push(prefix); |
|
allparts[prefix] = []; |
|
} |
|
var part = savesub.replace(/^\\d+\\.\\d+_submit_/,''); |
|
allparts[prefix].push(part); |
|
} |
|
} |
|
} |
|
for (var k=0; k<allprefixes.length; k++) { |
|
var idx = getIndexByName(formname,allprefixes[k]+'_submitted'); |
|
if (idx > -1) { |
|
if (formname.elements[idx].value != 'yes') { |
|
submitterval = formname.elements[idx].value; |
|
submitter = submitterval.replace(/^part_/,''); |
|
subprefix = allprefixes[k]; |
|
result = overwritten_check(formname,path,multiresp,submitter,subprefix); |
|
alloverwrites.push.apply(alloverwrites,result['overwrite']); |
|
alldelconfirm.push.apply(alldelconfirm,result['delete']); |
|
break; |
|
} |
|
} |
|
} |
|
if (submitter == '' || submitter == undefined) { |
|
for (var m=0; m<allprefixes.length; m++) { |
|
for (var n=0; n<allparts[allprefixes[m]].length; n++) { |
|
var result = overwritten_check(formname,path,multiresp,allparts[allprefixes[m]][n],allprefixes[m]); |
|
alloverwrites.push.apply(alloverwrites,result['overwrite']); |
|
alldelconfirm.push.apply(alldelconfirm,result['delete']); |
|
} |
|
} |
|
} |
|
} |
|
} |
|
if (alloverwrites.length > 0) { |
|
if (!confirm("$overwritewarn")) { |
|
for (var n=0; n<alloverwrites.length; n++) { |
|
formname.elements[alloverwrites[n]].value = ""; |
|
} |
|
return false; |
|
} |
|
} |
|
if (alldelconfirm.length > 0) { |
|
if (!confirm("$delfilewarn")) { |
|
for (var p=0; p<alldelconfirm.length; p++) { |
|
formname.elements[alldelconfirm[p]].checked = false; |
|
} |
|
return false; |
|
} |
|
} |
|
return true; |
|
} |
|
|
|
function getIndexByName(formname,item) { |
|
for (var i=0;i<formname.elements.length;i++) { |
|
if (formname.elements[i].name == item) { |
|
return i; |
|
} |
|
} |
|
return -1; |
|
} |
|
|
|
function overwritten_check(formname,path,multiresp,part,prefix) { |
|
var result = []; |
|
result['overwrite'] = []; |
|
result['delete'] = []; |
|
var elemnum = formname.elements.length; |
|
if (elemnum == 0) { |
|
return result; |
|
} |
|
var uploadstr; |
|
var deletestr; |
|
if ((prefix != undefined) && (prefix != '')) { |
|
var prepend = prefix+'_'; |
|
uploadstr = new RegExp("^"+prepend+"HWFILE"+part+".+\$"); |
|
deletestr = new RegExp("^"+prepend+"HWFILE"+part+".+_\\\\d+_delete\$"); |
|
multiresp = check_for_multiples(prepend); |
|
path = check_for_turninpath(prepend); |
|
} else { |
|
uploadstr = new RegExp("^HWFILE"+part+".+\$"); |
|
deletestr = new RegExp("^HWFILE"+part+".+_\\\\d+_delete\$"); |
|
} |
|
var alluploads = []; |
|
var allchecked = []; |
|
var allskipdel = []; |
|
var fnametrim = /[^\\/\\\\]+\$/; |
|
for (var i=0; i<formname.elements.length; i++) { |
|
var id = formname.elements[i].id; |
|
if (id != '') { |
|
if (uploadstr.test(id)) { |
|
if (formname.elements[i].type == 'file') { |
|
alluploads.push(id); |
|
} else { |
|
if (deletestr.test(id)) { |
|
if (formname.elements[i].type == 'checkbox') { |
|
if (formname.elements[i].checked) { |
|
allchecked.push(id); |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
for (var j=0; j<alluploads.length; j++) { |
|
var delstr = new RegExp("^"+alluploads[j]+"_\\\\d+_delete\$"); |
|
var delboxes = []; |
|
for (var k=0; k<formname.elements.length; k++) { |
|
var id = formname.elements[k].id; |
|
if ((id != '') && (id != undefined)) { |
|
if (delstr.test(id)) { |
|
if (formname.elements[k].type == 'checkbox') { |
|
delboxes.push(id); |
|
} |
|
} |
|
} |
|
} |
|
if (delboxes.length > 0) { |
|
if ((formname.elements[alluploads[j]].value != undefined) && |
|
(formname.elements[alluploads[j]].value != '')) { |
|
var filepath = formname.elements[alluploads[j]].value; |
|
var newfilename = fnametrim.exec(filepath); |
|
if (newfilename != null) { |
|
var filename = String(newfilename); |
|
var nospaces = filename.replace(/\\s+/g,'_'); |
|
var nospecials = nospaces.replace(/[^\\/\\w\\.\\-]/g,''); |
|
var cleanfilename = nospecials.replace(/\\.(\\d+\\.)/g,"_\$1"); |
|
if (cleanfilename != '') { |
|
var fullpath = path+"/"+cleanfilename; |
|
if (multiresp == 1) { |
|
var partid = String(alluploads[i]); |
|
var subdir = partid.replace(/^\\d*.?\\d*_?HWFILE/,''); |
|
if (subdir != "" && subdir != undefined) { |
|
fullpath = path+"/"+subdir+"/"+cleanfilename; |
|
} |
|
} |
|
for (var m=0; m<delboxes.length; m++) { |
|
if (fullpath == formname.elements[delboxes[m]].value) { |
|
if (formname.elements[delboxes[m]].checked) { |
|
allskipdel.push(delboxes[m]); |
|
} else { |
|
result['overwrite'].push(alluploads[j]); |
|
} |
|
break; |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
if (allchecked.length > 0) { |
|
if (allskipdel.length > 0) { |
|
for (var n=0; n<allchecked.length; n++) { |
|
if (allskipdel.indexOf(allchecked[n]) == -1) { |
|
result['delete'].push(allchecked[n]); |
|
} |
|
} |
|
} else { |
|
result['delete'].push.apply(result['delete'],allchecked); |
|
} |
|
} |
|
return result; |
|
} |
|
|
|
function check_for_multiples(prefix) { |
|
$multtext |
|
} |
|
|
|
function check_for_turninpath(prefix) { |
|
$turninpathtext |
|
} |
|
|
|
// ]]> |
|
</script> |
|
|
|
$arrayindexofjs |
|
|
|
ENDSCRIPT |
|
} |
|
|
|
############################################## |
############################################## |
############################################## |
|
|
# javascript_valid_email |
# javascript_valid_email |