--- loncom/interface/lonpreferences.pm 2024/03/01 21:28:39 1.196.4.28.2.4 +++ loncom/interface/lonpreferences.pm 2024/03/02 16:09:04 1.196.4.28.2.5 @@ -1,7 +1,7 @@ # The LearningOnline Network # Preferences # -# $Id: lonpreferences.pm,v 1.196.4.28.2.4 2024/03/01 21:28:39 raeburn Exp $ +# $Id: lonpreferences.pm,v 1.196.4.28.2.5 2024/03/02 16:09:04 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -2045,26 +2045,7 @@ sub author_space_settings { if (keys(%author_roles) > 0) { my ($showdomdefs,$js,$args,@items); my $returnurl = &HTML::Entities::encode($env{'form.returnurl'},'"<>&\''); - my $reqdmajor = 2; - my $reqdminor = 11; - my $reqddotnum = 4; - my $reqddotlett= 'B'; - my $reqdreldate = '2024030109'; - my $reqletterfail; - my $loncaparev = &Apache::lonnet::get_server_loncaparev($env{'user.domain'},$env{'user.home'}); - my ($major,$minor,$dotrel,$reldate) = ($loncaparev =~ /^\'?(\d+)\.(\d+)\.([\w.]+)\-(\d+)\'?$/); - my ($dotnum,$dotlett) = split(/\./,$dotrel); - my %lettdig = &Apache::lonnet::letter_to_digits(); - if ((exists($lettdig{$dotlett})) && (exists($lettdig{$reqddotlett}))) { - if ($lettdig{$reqddotlett} > $lettdig{$dotlett}) { - $reqletterfail = 1; - } - } - unless (($major eq '' && $minor eq '') || - ($reqdmajor > $major) || (($reqdmajor == $major) && ($reqdminor > $minor)) || - (($reqdmajor == $major) && ($reqdminor == $minor) && ($reqddotnum > $dotnum)) || - (($reqdmajor == $major) && ($reqdminor == $minor) && ($reqddotnum == $dotnum) && $reqletterfail) || - (($reqdmajor == $major) && ($reqdminor == $minor) && ($reqddotnum == $dotnum) && ($reqdreldate > $reldate))) { + if (&expanded_authoring_settings()) { @items = ('nocodemirror','copyright','sourceavail'); $showdomdefs = 1; $js = &toggle_options_js(); @@ -2176,7 +2157,7 @@ sub change_authoring_settings { my %author_roles = &Apache::lonnet::get_my_roles($user,$domain,'userroles','',['au','ca','aa']); if (keys(%author_roles) > 0) { my $message; - if (0) { + if (!&expanded_authoring_settings()) { my %ausettings=('environment.nocodemirror' => ''); if ($env{'form.cmoff'}) { $ausettings{'environment.nocodemirror'}='yes'; } &Apache::lonnet::put('environment',\%ausettings); @@ -2319,6 +2300,32 @@ sub authoring_settings_titles { ); } +sub expanded_authoring_settings { + my $reqdmajor = 2; + my $reqdminor = 11; + my $reqddotnum = 4; + my $reqddotlett= 'B'; + my $reqdreldate = '2024030109'; + my $reqletterfail; + my $loncaparev = &Apache::lonnet::get_server_loncaparev($env{'user.domain'},$env{'user.home'}); + my ($major,$minor,$dotrel,$reldate) = ($loncaparev =~ /^\'?(\d+)\.(\d+)\.([\w.]+)\-(\d+)\'?$/); + my ($dotnum,$dotlett) = split(/\./,$dotrel); + my %lettdig = &Apache::lonnet::letter_to_digits(); + if ((exists($lettdig{$dotlett})) && (exists($lettdig{$reqddotlett}))) { + if ($lettdig{$reqddotlett} > $lettdig{$dotlett}) { + $reqletterfail = 1; + } + } + unless (($major eq '' && $minor eq '') || + ($reqdmajor > $major) || (($reqdmajor == $major) && ($reqdminor > $minor)) || + (($reqdmajor == $major) && ($reqdminor == $minor) && ($reqddotnum > $dotnum)) || + (($reqdmajor == $major) && ($reqdminor == $minor) && ($reqddotnum == $dotnum) && $reqletterfail) || + (($reqdmajor == $major) && ($reqdminor == $minor) && ($reqddotnum == $dotnum) && ($reqdreldate > $reldate))) { + return 1; + } + return; +} + sub lockednameschanger { my $r = shift; my %userenv = &Apache::lonnet::get('environment',['lockedname']);