version 1.819, 2009/05/16 18:06:41
|
version 1.827, 2009/05/27 14:59:49
|
Line 407 sub studentbrowser_javascript {
|
Line 407 sub studentbrowser_javascript {
|
) { return ''; } |
) { return ''; } |
return (<<'ENDSTDBRW'); |
return (<<'ENDSTDBRW'); |
<script type="text/javascript" language="Javascript"> |
<script type="text/javascript" language="Javascript"> |
|
// <![CDATA[ |
var stdeditbrowser; |
var stdeditbrowser; |
function openstdbrowser(formname,uname,udom,roleflag,ignorefilter,courseadvonly) { |
function openstdbrowser(formname,uname,udom,roleflag,ignorefilter,courseadvonly) { |
var url = '/adm/pickstudent?'; |
var url = '/adm/pickstudent?'; |
Line 429 sub studentbrowser_javascript {
|
Line 430 sub studentbrowser_javascript {
|
stdeditbrowser = open(url,title,options,'1'); |
stdeditbrowser = open(url,title,options,'1'); |
stdeditbrowser.focus(); |
stdeditbrowser.focus(); |
} |
} |
|
// ]]> |
</script> |
</script> |
ENDSTDBRW |
ENDSTDBRW |
} |
} |
Line 461 sub selectstudent_link {
|
Line 463 sub selectstudent_link {
|
sub authorbrowser_javascript { |
sub authorbrowser_javascript { |
return <<"ENDAUTHORBRW"; |
return <<"ENDAUTHORBRW"; |
<script type="text/javascript" language="JavaScript"> |
<script type="text/javascript" language="JavaScript"> |
|
// <![CDATA[ |
var stdeditbrowser; |
var stdeditbrowser; |
|
|
function openauthorbrowser(formname,udom) { |
function openauthorbrowser(formname,udom) { |
Line 473 function openauthorbrowser(formname,udom
|
Line 476 function openauthorbrowser(formname,udom
|
stdeditbrowser.focus(); |
stdeditbrowser.focus(); |
} |
} |
|
|
|
// ]]> |
</script> |
</script> |
ENDAUTHORBRW |
ENDAUTHORBRW |
} |
} |
Line 482 sub coursebrowser_javascript {
|
Line 486 sub coursebrowser_javascript {
|
my $crs_or_grp_alert = &mt('Please select the type of LON-CAPA entity - Course or Group - for which you wish to add/modify a user role'); |
my $crs_or_grp_alert = &mt('Please select the type of LON-CAPA entity - Course or Group - for which you wish to add/modify a user role'); |
my $output = ' |
my $output = ' |
<script type="text/javascript" language="JavaScript"> |
<script type="text/javascript" language="JavaScript"> |
|
// <![CDATA[ |
var stdeditbrowser;'."\n"; |
var stdeditbrowser;'."\n"; |
$output .= <<"ENDSTDBRW"; |
$output .= <<"ENDSTDBRW"; |
function opencrsbrowser(formname,uname,udom,desc,extra_element,multflag,crstype) { |
function opencrsbrowser(formname,uname,udom,desc,extra_element,multflag,crstype) { |
Line 568 ENDSTDBRW
|
Line 573 ENDSTDBRW
|
$output .= &setsec_javascript($sec_element,$formname); |
$output .= &setsec_javascript($sec_element,$formname); |
} |
} |
$output .= ' |
$output .= ' |
|
// ]]> |
</script>'; |
</script>'; |
return $output; |
return $output; |
} |
} |
Line 829 sub linked_select_forms {
|
Line 835 sub linked_select_forms {
|
# output the javascript to do the changing |
# output the javascript to do the changing |
my $result = ''; |
my $result = ''; |
$result.='<script type="text/javascript" language="JavaScript">'."\n"; |
$result.='<script type="text/javascript" language="JavaScript">'."\n"; |
|
$result.="// <![CDATA[\n"; |
$result.="var select2data = new Object();\n"; |
$result.="var select2data = new Object();\n"; |
$" = '","'; |
$" = '","'; |
my $debug = ''; |
my $debug = ''; |
Line 874 function select1_changed() {
|
Line 881 function select1_changed() {
|
} |
} |
} |
} |
} |
} |
|
// ]]> |
</script> |
</script> |
END |
END |
# output the initial values for the selection lists |
# output the initial values for the selection lists |
Line 1027 sub update_help_link {
|
Line 1035 sub update_help_link {
|
my $banner_link = "/adm/helpmenu?page=banner&topic=$topic&component_help=$component_help&faq=$faq&bug=$bug&origurl=$origurl&stamp=$timestamp&stayonpage=$stayOnPage"; |
my $banner_link = "/adm/helpmenu?page=banner&topic=$topic&component_help=$component_help&faq=$faq&bug=$bug&origurl=$origurl&stamp=$timestamp&stayonpage=$stayOnPage"; |
my $output .= <<"ENDOUTPUT"; |
my $output .= <<"ENDOUTPUT"; |
<script type="text/javascript"> |
<script type="text/javascript"> |
|
// <![CDATA[ |
banner_link = '$banner_link'; |
banner_link = '$banner_link'; |
|
// ]]> |
</script> |
</script> |
ENDOUTPUT |
ENDOUTPUT |
return $output; |
return $output; |
Line 1394 sub resize_textarea_js {
|
Line 1404 sub resize_textarea_js {
|
my $geometry = &viewport_geometry_js(); |
my $geometry = &viewport_geometry_js(); |
return <<"RESIZE"; |
return <<"RESIZE"; |
<script type="text/javascript"> |
<script type="text/javascript"> |
|
// <![CDATA[ |
$geometry |
$geometry |
|
|
function getX(element) { |
function getX(element) { |
Line 1432 function resize_textarea(textarea_id,bot
|
Line 1443 function resize_textarea(textarea_id,bot
|
} |
} |
textarea.style.height=new_height+'px'; |
textarea.style.height=new_height+'px'; |
} |
} |
|
// ]]> |
</script> |
</script> |
RESIZE |
RESIZE |
|
|
Line 2299 sub authform_internal{
|
Line 2311 sub authform_internal{
|
$result = &mt |
$result = &mt |
('[_1] Internally authenticated (with initial password [_2])', |
('[_1] Internally authenticated (with initial password [_2])', |
'<label>'.$authtype,'</label>'.$autharg); |
'<label>'.$authtype,'</label>'.$autharg); |
$result.="<label><input type=\"checkbox\" name=\"visible\" onClick='if (this.checked) { this.form.intarg.type=\"text\" } else { this.form.intarg.type=\"password\" }' />".&mt('Visible input').'</label>'; |
$result.="<label><input type=\"checkbox\" name=\"visible\" onclick='if (this.checked) { this.form.intarg.type=\"text\" } else { this.form.intarg.type=\"password\" }' />".&mt('Visible input').'</label>'; |
return $result; |
return $result; |
} |
} |
|
|
Line 4168 sub designparm {
|
Line 4180 sub designparm {
|
return $output; |
return $output; |
} |
} |
|
|
|
############################################## |
|
=pod |
|
|
|
=item * &head_subbox() |
|
|
|
Inputs: $content (contains HTML code with page functions, etc.) |
|
|
|
Returns: HTML div with $content |
|
To be included in page header |
|
|
|
=cut |
|
|
|
sub head_subbox { |
|
my ($content)=@_; |
|
my $output = |
|
'<div id="LC_head_subbox2">' #FIXME: solve conflicts with lonhtmlcommon:breadcrumbs LC_head_subbox |
|
.$content |
|
.'</div>' |
|
} |
|
|
|
############################################## |
|
=pod |
|
|
|
=item * &CSTR_pageheader() |
|
|
|
Inputs: ./. |
|
|
|
Returns: HTML div with CSTR path and recent box |
|
To be included on Construction Space pages |
|
|
|
=cut |
|
|
|
sub CSTR_pageheader { |
|
# this is for resources; directories have customtitle, and crumbs |
|
# and select recent are created in lonpubdir.pm |
|
my ($uname,$thisdisfn)= |
|
($env{'request.filename'} =~ m|^/home/([^/]+)/public_html/(.*)|); |
|
my $formaction='/priv/'.$uname.'/'.$thisdisfn; |
|
$formaction=~s/\/+/\//g; |
|
|
|
my $parentpath = ''; |
|
my $lastitem = ''; |
|
if ($thisdisfn =~ m-(.+/)([^/]*)$-) { |
|
$parentpath = $1; |
|
$lastitem = $2; |
|
} else { |
|
$lastitem = $thisdisfn; |
|
} |
|
return |
|
'<div>' |
|
.&Apache::loncommon::help_open_menu('','',3,'Authoring') #FIXME: Broken? Where is it? |
|
.'<b>'.&mt('Construction Space:').'</b> ' |
|
.'<form name="dirs" method="post" action="'.$formaction |
|
.'" target="_top"><tt><b>' #FIXME lonpubdir: target="_parent" |
|
.&Apache::lonhtmlcommon::crumbs($uname.'/'.$parentpath,'_top','/priv','','+1',1)."$lastitem</b></tt><br />" |
|
#FIXME lonpubdir: &Apache::lonhtmlcommon::crumbs($uname.$thisdisfn.'/','_top','/priv','','+1',1)."</b></tt><br />" |
|
.&Apache::lonhtmlcommon::select_recent('construct','recent','this.form.action=this.form.recent.value;this.form.submit()') |
|
.'</form>' |
|
.&Apache::lonmenu::constspaceform() |
|
.'</div>'; |
|
} |
|
|
############################################### |
############################################### |
############################################### |
############################################### |
|
|
Line 4320 ENDROLE
|
Line 4394 ENDROLE
|
$forcereg=1; |
$forcereg=1; |
} |
} |
|
|
if (!$customtitle && $env{'request.state'} eq 'construct') { |
if (!$customtitle && $env{'request.state'} eq 'construct') { |
# this is for resources; directories have customtitle, and crumbs |
$titleinfo = &CSTR_pageheader(); #FIXME: Will be removed once all scripts have their own calls |
# and select recent are created in lonpubdir.pm |
} |
my ($uname,$thisdisfn)= |
|
($env{'request.filename'} =~ m|^/home/([^/]+)/public_html/(.*)|); |
|
my $formaction='/priv/'.$uname.'/'.$thisdisfn; |
|
$formaction=~s/\/+/\//g; |
|
|
|
my $parentpath = ''; |
|
my $lastitem = ''; |
|
if ($thisdisfn =~ m-(.+/)([^/]*)$-) { |
|
$parentpath = $1; |
|
$lastitem = $2; |
|
} else { |
|
$lastitem = $thisdisfn; |
|
} |
|
$titleinfo = |
|
&Apache::loncommon::help_open_menu('','',3,'Authoring') |
|
.'<b>'.&mt('Construction Space').'</b>: ' |
|
.'<form name="dirs" method="post" action="'.$formaction |
|
.'" target="_top"><tt><b>' |
|
.&Apache::lonhtmlcommon::crumbs($uname.'/'.$parentpath,'_top','/priv','','+1',1)."<span class=\"LC_fontsize_big\">$lastitem</span></b></tt><br />" |
|
.&Apache::lonhtmlcommon::select_recent('construct','recent','this.form.action=this.form.recent.value;this.form.submit()') |
|
.'</form>' |
|
.&Apache::lonmenu::constspaceform(); |
|
} |
|
|
|
my $titletable = '<table id="LC_title_bar">' |
my $titletable = '<table id="LC_title_bar">' |
."<tr><td> $titleinfo $dc_info</td>".$roleinfo |
."<tr><td> $titleinfo $dc_info</td>".$roleinfo |
Line 4629 div.LC_confirm_box .LC_success img {
|
Line 4680 div.LC_confirm_box .LC_success img {
|
|
|
.LC_disc_action_links_bar { |
.LC_disc_action_links_bar { |
background: $tabbg; |
background: $tabbg; |
font-family: $sans; |
|
border: none; |
border: none; |
margin: 4px; |
margin: 4px; |
} |
} |
Line 4687 table#LC_title_bar.LC_with_remote {
|
Line 4737 table#LC_title_bar.LC_with_remote {
|
border-width: $border; |
border-width: $border; |
background: $pgbg; |
background: $pgbg; |
color: $fontmenu; |
color: $fontmenu; |
font-family: $sans; |
|
border-collapse: collapse; |
border-collapse: collapse; |
padding: 0; |
padding: 0; |
margin: 0; |
margin: 0; |
Line 4697 table.LC_docs_path {
|
Line 4746 table.LC_docs_path {
|
width: 100%; |
width: 100%; |
border: 0; |
border: 0; |
background: $pgbg; |
background: $pgbg; |
font-family: $sans; |
|
border-collapse: collapse; |
border-collapse: collapse; |
padding: 0; |
padding: 0; |
} |
} |
Line 4709 table#LC_title_bar td {
|
Line 4757 table#LC_title_bar td {
|
table#LC_title_bar .LC_title_bar_who { |
table#LC_title_bar .LC_title_bar_who { |
background: $tabbg; |
background: $tabbg; |
color: $fontmenu; |
color: $fontmenu; |
font: small $sans; |
font: small; |
text-align: right; |
text-align: right; |
margin: 0; |
margin: 0; |
} |
} |
Line 4726 table#LC_title_bar div.LC_title_bar_real
|
Line 4774 table#LC_title_bar div.LC_title_bar_real
|
margin: 0; |
margin: 0; |
} |
} |
|
|
span.LC_metadata { |
|
font-family: $sans; |
|
} |
|
|
|
table#LC_menubuttons img{ |
table#LC_menubuttons img{ |
border: none; |
border: none; |
} |
} |
Line 4745 table#LC_top_nav td {
|
Line 4789 table#LC_top_nav td {
|
table#LC_top_nav td a, |
table#LC_top_nav td a, |
div#LC_top_nav a { |
div#LC_top_nav a { |
color: $font; |
color: $font; |
font-family: $sans; |
|
} |
} |
|
|
table#LC_top_nav td.LC_top_nav_logo { |
table#LC_top_nav td.LC_top_nav_logo { |
Line 4774 table.LC_breadcrumbs td,
|
Line 4817 table.LC_breadcrumbs td,
|
table.LC_docs_path td { |
table.LC_docs_path td { |
background: $tabbg; |
background: $tabbg; |
color: $fontmenu; |
color: $fontmenu; |
font-family: $sans; |
|
font-size: smaller; |
font-size: smaller; |
} |
} |
|
|
Line 4782 table.LC_breadcrumbs td.LC_breadcrumbs_c
|
Line 4824 table.LC_breadcrumbs td.LC_breadcrumbs_c
|
table.LC_docs_path td.LC_docs_path_component { |
table.LC_docs_path td.LC_docs_path_component { |
background: $tabbg; |
background: $tabbg; |
color: $fontmenu; |
color: $fontmenu; |
font-family: $sans; |
|
font-size: larger; |
font-size: larger; |
text-align: right; |
text-align: right; |
} |
} |
Line 4802 table#LC_mainmenu td.LC_mainmenu_column
|
Line 4843 table#LC_mainmenu td.LC_mainmenu_column
|
#LC_head_subbox { |
#LC_head_subbox { |
clear:both; |
clear:both; |
background: $sidebg; |
background: $sidebg; |
border-bottom: 1px solid #999999; |
border-bottom: 1px solid $lg_border_color; |
height: 32px; |
height: 32px; |
line-height: 32px; |
line-height: 32px; |
margin: 0 0 10px; |
margin: 0; |
padding: 0; |
padding: 0; |
} |
} |
|
|
|
#LC_head_subbox2 { /* FIXME: replace by LC_head_subbox once lonhtmlcommon::breadcrumbs has been fixed */ |
|
clear:both; |
|
background: #F8F8F8; /* $sidebg; */ |
|
border-bottom: 1px solid $lg_border_color; |
|
margin: 0 0 10px 0; |
|
padding: 5px; |
|
} |
|
|
.LC_fontsize_medium { |
.LC_fontsize_medium { |
font-size: 85%; |
font-size: 85%; |
} |
} |
Line 4819 table#LC_mainmenu td.LC_mainmenu_column
|
Line 4868 table#LC_mainmenu td.LC_mainmenu_column
|
|
|
.LC_menubuttons_inline_text { |
.LC_menubuttons_inline_text { |
color: $font; |
color: $font; |
font-family: $sans; |
|
font-size: 90%; |
font-size: 90%; |
padding-left:3px; |
padding-left:3px; |
} |
} |
Line 4831 table#LC_mainmenu td.LC_mainmenu_column
|
Line 4879 table#LC_mainmenu td.LC_mainmenu_column
|
.LC_menubuttons_category { |
.LC_menubuttons_category { |
color: $font; |
color: $font; |
background: $pgbg; |
background: $pgbg; |
font-family: $sans; |
|
font-size: larger; |
font-size: larger; |
font-weight: bold; |
font-weight: bold; |
} |
} |
Line 4841 td.LC_menubuttons_text {
|
Line 4888 td.LC_menubuttons_text {
|
} |
} |
|
|
.LC_current_location { |
.LC_current_location { |
font-family: $sans; |
|
background: $tabbg; |
background: $tabbg; |
} |
} |
|
|
.LC_new_mail { |
.LC_new_mail { |
font-family: $sans; |
|
background: $tabbg; |
background: $tabbg; |
font-weight: bold; |
font-weight: bold; |
} |
} |
|
|
.LC_preferences_labeltext { |
.LC_preferences_labeltext { |
font-family: $sans; |
|
text-align: right; |
text-align: right; |
} |
} |
|
|
Line 5111 span.LC_current_location {
|
Line 5155 span.LC_current_location {
|
|
|
span.LC_parm_menu_item { |
span.LC_parm_menu_item { |
font-size: larger; |
font-size: larger; |
font-family: $sans; |
|
} |
} |
|
|
span.LC_parm_scope_all { |
span.LC_parm_scope_all { |
Line 5354 table.LC_notify_front_page td {
|
Line 5397 table.LC_notify_front_page td {
|
} |
} |
|
|
.LC_topic_bar { |
.LC_topic_bar { |
font-family: $sans; |
|
font-weight: bold; |
font-weight: bold; |
width: 100%; |
width: 100%; |
background: $tabbg; |
background: $tabbg; |
Line 5411 table.LC_prior_tries td {
|
Line 5453 table.LC_prior_tries td {
|
|
|
.LC_answer_correct { |
.LC_answer_correct { |
background: lightgreen; |
background: lightgreen; |
font-family: $sans; |
|
color: darkgreen; |
color: darkgreen; |
padding: 6px; |
padding: 6px; |
} |
} |
|
|
.LC_answer_charged_try { |
.LC_answer_charged_try { |
background: #FFAAAA; |
background: #FFAAAA; |
font-family: $sans; |
|
color: darkred; |
color: darkred; |
padding: 6px; |
padding: 6px; |
} |
} |
Line 5427 table.LC_prior_tries td {
|
Line 5467 table.LC_prior_tries td {
|
.LC_answer_no_grade, |
.LC_answer_no_grade, |
.LC_answer_late { |
.LC_answer_late { |
background: lightyellow; |
background: lightyellow; |
font-family: $sans; |
|
color: black; |
color: black; |
padding: 6px; |
padding: 6px; |
} |
} |
|
|
.LC_answer_previous { |
.LC_answer_previous { |
background: lightblue; |
background: lightblue; |
font-family: $sans; |
|
color: darkblue; |
color: darkblue; |
padding: 6px; |
padding: 6px; |
} |
} |
|
|
.LC_answer_no_message { |
.LC_answer_no_message { |
background: #FFFFFF; |
background: #FFFFFF; |
font-family: $sans; |
|
color: black; |
color: black; |
padding: 6px; |
padding: 6px; |
} |
} |
|
|
.LC_answer_unknown { |
.LC_answer_unknown { |
background: orange; |
background: orange; |
font-family: $sans; |
|
color: black; |
color: black; |
padding: 6px; |
padding: 6px; |
} |
} |
Line 5747 table#LC_mainmenu td.LC_mainmenu_col_fie
|
Line 5783 table#LC_mainmenu td.LC_mainmenu_col_fie
|
.LC_mainmenu_fieldset_category { |
.LC_mainmenu_fieldset_category { |
color: $font; |
color: $font; |
background: $pgbg; |
background: $pgbg; |
font-family: $sans; |
|
font-size: small; |
font-size: small; |
font-weight: bold; |
font-weight: bold; |
} |
} |
Line 5952 ul.LC_TabContentBigger li a {
|
Line 5987 ul.LC_TabContentBigger li a {
|
|
|
ol#LC_MenuBreadcrumbs, |
ol#LC_MenuBreadcrumbs, |
ol#LC_PathBreadcrumbs, |
ol#LC_PathBreadcrumbs, |
ul.LC_CourseBreadcrumbs { |
ul#LC_CourseBreadcrumbs { |
padding-left: 10px; |
padding-left: 10px; |
margin: 0; |
margin: 0; |
list-style-position: inside; |
list-style-position: inside; |
Line 5960 ul.LC_CourseBreadcrumbs {
|
Line 5995 ul.LC_CourseBreadcrumbs {
|
|
|
ol#LC_MenuBreadcrumbs li, |
ol#LC_MenuBreadcrumbs li, |
ol#LC_PathBreadcrumbs li, |
ol#LC_PathBreadcrumbs li, |
ul.LC_CourseBreadcrumbs li { |
ul#LC_CourseBreadcrumbs li { |
display: inline; |
display: inline; |
padding: 0 0 0 10px; |
padding: 0 0 0 10px; |
overflow:hidden; |
overflow:hidden; |
} |
} |
|
|
ol#LC_MenuBreadcrumbs li a, ul.LC_CourseBreadcrumbs li a { |
ol#LC_MenuBreadcrumbs li a, |
|
ul#LC_CourseBreadcrumbs li a { |
text-decoration: none; |
text-decoration: none; |
font-size:90%; |
font-size:90%; |
} |
} |
Line 6783 sub get_users_function {
|
Line 6819 sub get_users_function {
|
if ($env{'request.role'}=~/^(su|dc|ad|li)/) { |
if ($env{'request.role'}=~/^(su|dc|ad|li)/) { |
$function='admin'; |
$function='admin'; |
} |
} |
if (($env{'request.role'}=~/^(au|ca)/) || |
if (($env{'request.role'}=~/^(au|ca|aa)/) || |
($ENV{'REQUEST_URI'}=~/^(\/priv|\~)/)) { |
($ENV{'REQUEST_URI'}=~/^(\/priv|\~)/)) { |
$function='author'; |
$function='author'; |
} |
} |
Line 6794 sub get_users_function {
|
Line 6830 sub get_users_function {
|
|
|
=pod |
=pod |
|
|
|
=item * &show_course() |
|
|
|
Used by lonmenu.pm and lonroles.pm to determine whether to use the word |
|
'Courses' or 'Roles' in inline navigation and on screen displaying user's roles. |
|
|
|
Inputs: |
|
None |
|
|
|
Outputs: |
|
Scalar: 1 if 'Course' to be used, 0 otherwise. |
|
|
|
=cut |
|
|
|
############################################### |
|
sub show_course { |
|
my $course = !$env{'user.adv'}; |
|
if (!$env{'user.adv'}) { |
|
foreach my $env (keys(%env)) { |
|
next if ($env !~ m/^user\.priv\./); |
|
if ($env !~ m/^user\.priv\.(?:st|cm)/) { |
|
$course = 0; |
|
last; |
|
} |
|
} |
|
} |
|
return $course; |
|
} |
|
|
|
############################################### |
|
|
|
=pod |
|
|
=item * &check_user_status() |
=item * &check_user_status() |
|
|
Determines current status of supplied role for a |
Determines current status of supplied role for a |
Line 7537 ENDSCRIPT
|
Line 7605 ENDSCRIPT
|
|
|
my $output = <<"END_BLOCK"; |
my $output = <<"END_BLOCK"; |
<script type="text/javascript"> |
<script type="text/javascript"> |
|
// <![CDATA[ |
function validateEntry(callingForm) { |
function validateEntry(callingForm) { |
|
|
var checkok = 1; |
var checkok = 1; |
Line 7605 function validateEntry(callingForm) {
|
Line 7674 function validateEntry(callingForm) {
|
|
|
$newuserscript |
$newuserscript |
|
|
|
// ]]> |
</script> |
</script> |
|
|
$new_user_create |
$new_user_create |
Line 10212 sub escape_url {
|
Line 10282 sub escape_url {
|
return join('/',@urlslices).'/'.$lastitem; |
return join('/',@urlslices).'/'.$lastitem; |
} |
} |
|
|
|
sub compare_arrays { |
|
my ($arrayref1,$arrayref2) = @_; |
|
my (@difference,%count); |
|
@difference = (); |
|
%count = (); |
|
if ((ref($arrayref1) eq 'ARRAY') && (ref($arrayref2) eq 'ARRAY')) { |
|
foreach my $element (@{$arrayref1}, @{$arrayref2}) { $count{$element}++; } |
|
foreach my $element (keys(%count)) { |
|
if ($count{$element} == 1) { |
|
push(@difference,$element); |
|
} |
|
} |
|
} |
|
return @difference; |
|
} |
|
|
# -------------------------------------------------------- Initialize user login |
# -------------------------------------------------------- Initialize user login |
sub init_user_environment { |
sub init_user_environment { |
my ($r, $username, $domain, $authhost, $form, $args) = @_; |
my ($r, $username, $domain, $authhost, $form, $args) = @_; |