[LON-CAPA-cvs] cvs: loncom /interface lonconfigsettings.pm

raeburn raeburn@source.lon-capa.org
Mon, 22 Mar 2010 17:29:11 -0000


This is a MIME encoded message

--raeburn1269278951
Content-Type: text/plain

raeburn		Mon Mar 22 17:29:11 2010 EDT

  Modified files:              
    /loncom/interface	lonconfigsettings.pm 
  Log:
  - Eliminate option to choose one or two column display of configuration settings for Domain configuration.
    - Use centred single column div for both domain config and course config).
  - Use three columns for names of settings to choose for display on next page.
  
  
--raeburn1269278951
Content-Type: text/plain
Content-Disposition: attachment; filename="raeburn-20100322172911.txt"

Index: loncom/interface/lonconfigsettings.pm
diff -u loncom/interface/lonconfigsettings.pm:1.11 loncom/interface/lonconfigsettings.pm:1.12
--- loncom/interface/lonconfigsettings.pm:1.11	Wed Jan 27 13:08:01 2010
+++ loncom/interface/lonconfigsettings.pm	Mon Mar 22 17:29:11 2010
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Handler to set domain-wide configuration settings
 #
-# $Id: lonconfigsettings.pm,v 1.11 2010/01/27 13:08:01 wenzelju Exp $
+# $Id: lonconfigsettings.pm,v 1.12 2010/03/22 17:29:11 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -40,7 +40,7 @@
     my ($r,$phase,$context,$jscript) = @_;
     my ($pagetitle,$brcrumtitle,$action,$call_category_check);
     if ($context eq 'domain') {
-        ($pagetitle, $brcrumtitle) = ('View/Modify Domain Settings','Domain Settings');
+        ($pagetitle, $brcrumtitle) = ('View/Modify Domain Settings','View/Modify Domain Settings');
         $action = '/adm/domainprefs';
         if ($phase eq 'display') {
             my @actions = &Apache::loncommon::get_env_multiple('form.actions');
@@ -94,8 +94,7 @@
 }'."\n";
     if ($phase eq 'pickactions') {
         $js .=
-            &Apache::lonhtmlcommon::set_form_elements({actions => 'checkbox',numcols => 'radio',})."\n".
-            &javascript_set_colnums();
+            &Apache::lonhtmlcommon::set_form_elements({actions => 'checkbox'})."\n";
     } elsif ($phase eq 'display') {
         $js .= &color_pick_js()."\n";
     }
@@ -114,12 +113,7 @@
     my $additem;
     if ($phase eq 'pickactions') {
         my %loaditems = (
-                    'onload' => "javascript:getViewportDims(document.$phase.width,document.$phase.height);setDisplayColumns();setFormElements(document.pickactions);",
-                        );
-        $additem = {'add_entries' => \%loaditems,};
-    } else {
-        my %loaditems = (
-                    'onload' => "javascript:getViewportDims(document.$phase.width,document.$phase.height);",
+                    'onload' => "setFormElements(document.pickactions);",
                         );
         $additem = {'add_entries' => \%loaditems,};
     }
@@ -140,11 +134,7 @@
 sub print_footer {
     my ($r,$phase,$newphase,$button_text,$actions) = @_;
     $button_text = &mt($button_text);
-    $r->print('<input type="hidden" name="phase" value="" />'.
-              '<input type="hidden" name="width" value="'.
-              $env{'form.width'}.'" />'.
-              '<input type="hidden" name="height" value="'.
-              $env{'form.height'}.'" />');
+    $r->print('<input type="hidden" name="phase" value="" />');
     if (defined($env{'form.origin'})) {
         $r->print('<input type="hidden" name="origin" value="'.$env{'form.origin'}.'" />'."\n");
     }
@@ -154,7 +144,6 @@
                 $r->print('<input type="hidden" name="actions" value="'.$item.'" />')."\n";
             }
         }
-        $r->print('<input type="hidden" name="numcols" value="'.$env{'form.numcols'}.'" />');
     }
     my $dest='"javascript:changePage(document.'.$phase.','."'$newphase'".')"';
     if ($phase eq 'process') {
@@ -253,11 +242,11 @@
         ({href=>"javascript:changePage(document.$phase,'display')",
           text=>"Display/Edit Settings"});
     &print_header($r,$phase,$context,$jscript);
+    my $divwidth = 900;
     if ((ref($prefs_order) eq 'ARRAY') && (ref($prefs) eq 'HASH') && (ref($values) eq 'HASH')) { 
         if (@actions > 0) {
             my $rowsum = 0;
             my (%output,%rowtotal,@items);
-            my $halfway = @actions/2;
             foreach my $item (@{$prefs_order}) {
                 if (grep(/^\Q$item\E$/,@actions)) {
                     push(@items,$item);
@@ -273,65 +262,16 @@
                     $rowsum += $rowtotal{$item};
                 }
             }
-            my $colend;
-            my $halfway = $rowsum/2;
-            my $aggregate = 0;
-            my $sumleft = 0;
-            my $sumright = 0;
-            my $crossover;
+            $r->print('<div id="prefs" style="max-width:'.$divwidth.'px;margin: 10px auto 10px auto;">');
             for (my $i=0; $i<@items; $i++) {
-                $aggregate += $rowtotal{$items[$i]};
-                if ($aggregate > $halfway) {
-                    $crossover = $i;
-                    last;
-                }
-            }
-            for (my $i=0; $i<$crossover; $i++) {
-                $sumleft += $rowtotal{$items[$i]};
-            }
-            for (my $i=$crossover+1; $i<@items; $i++) {
-                $sumright += $rowtotal{$items[$i]};
-            }
-            if ((@items > 1) && ($env{'form.numcols'} == 2)) {
-                my $sumdiff = $sumright - $sumleft;
-                if ($sumdiff > 0) {
-                    $colend = $crossover + 1;
-                } else {
-                    $colend = $crossover;
-                }
-            } else {
-                $colend = @items;
-            }
-            if ($context ne 'course') {
-            	$r->print('<p><table class="LC_double_column"><tr><td class="LC_left_col">');            
-            }
-            else {
-            	$r->print('<div id="prefs" style="max-width:900px;margin: 10px auto 10px auto;">');
-            }
-            for (my $i=0; $i<$colend; $i++) {
                 $r->print($output{$items[$i]});
             }
-            if ($context ne 'course') {
-            	$r->print('</td><td></td><td class="LC_right_col">');
-            }
-            if ($colend < @items) {
-                for (my $i=$colend; $i<@items; $i++) {
-                    $r->print($output{$items[$i]});
-                }
-            }
-            if ($context ne 'course') {
-            	$r->print('</td></tr></table></p>');
-            }
-            else {
-            	$r->print('</div>');
-            }
+            $r->print('</div>');
             $r->print(&print_footer($r,$phase,'process','Save Changes',\@actions));
         } else {
             $r->print('<input type="hidden" name="phase" value="" />'.
-                  '<input type="hidden" name="numcols" value="'.
-                  $env{'form.numcols'}.'" />'."\n".
-                  '<span class="LC_error">'.&mt('No settings chosen').
-                  '</span>');
+                      '<span class="LC_error">'.&mt('No settings chosen').
+                      '</span>');
         }
         $r->print('</form>');
     }
@@ -374,25 +314,30 @@
     }
     my %helphash;
     &print_header($r,$phase,$context);
-    $r->print('<h3>'.&mt('Settings to display/modify').'</h3>');
     $r->print('<script type="text/javascript">'."\n".
               '// <![CDATA['."\n".
               &Apache::loncommon::check_uncheck_jscript()."\n".
               '// ]]>'."\n".
-              '</script>'."\n".'<p><input type="button" value="'.&mt('check all').'" '.
+              '</script>'."\n");
+    $r->print('<h3>'.&mt('Settings to display/modify').'</h3>'.
+              '<input type="button" value="'.&mt('check all').'" '.
               'onclick="javascript:checkAll(document.pickactions.actions)"'.
               ' />'.('&nbsp;'x2).
               '<input type="button" value="'.&mt('uncheck all').'" '.
-              'onclick="javascript:uncheckAll(document.pickactions.actions)"'.
-              ' /></p><div class="LC_left_float">');
-    my ($numitems,$midpoint,$seconddiv,$count);
+              'onclick="javascript:uncheckAll(document.pickactions.actions)" />'.
+              "\n".
+              '<div class="LC_left_float">');
+    my ($numitems,$maxincol,$firstthird,$secondthird,$seconddiv,$thirddiv,$count);
     if (ref($prefs_order) eq 'ARRAY') {
         $numitems = @{$prefs_order};
     }
-    $midpoint = int($numitems/2);
-    if ($numitems%2) {
-        $midpoint ++;
+    my $numcols = 3;
+    $maxincol = int($numitems/$numcols);
+    if ($numitems%$numcols) {
+        $maxincol ++;
     }
+    my $firstthird = $maxincol;
+    my $secondthird = $firstthird + $maxincol;
     $count = 0;
     if ((ref($prefs_order) eq 'ARRAY') && (ref($prefs) eq 'HASH')) {
         foreach my $item (@{$prefs_order}) {
@@ -401,37 +346,23 @@
                       '<label><input type="checkbox" name="actions" value="'.$item.
                       '" />&nbsp;'.&mt($prefs->{$item}->{'text'}).'</label></h4>');
             $count ++;
-            if ((!$seconddiv) && ($count >= $midpoint)) {
+            if ((!$seconddiv) && ($count >= $firstthird)) {
                 $r->print('</div>'."\n".'<div class="LC_left_float">'."\n");
                 $seconddiv = 1;
             }
+            if ((!$thirddiv) && ($count >= $secondthird)) {
+                $r->print('</div>'."\n".'<div class="LC_left_float">'."\n");
+                $thirddiv = 1;
+            } 
         }
-        $r->print('</div><div class="LC_clear_float_footer"></div><h3>'.
-                  &mt('Display options').'</h3>'."\n".
-                  '<p><span class="LC_nobreak">'.&mt('Display using: ')."\n".
-                  '<label><input type="radio" name="numcols" value="1" />'.
-                  &mt('one column').'</label>&nbsp;&nbsp;<label>'.
-                  '<input type="radio" name="numcols" value="2" />'.
-                  &mt('two columns').'</label></span></p>');
+        $r->print('</div><br clear="all" />');
     }
-    $r->print(&print_footer($r,$phase,'display','Go'));
+    $r->print(&print_footer($r,$phase,'display','Display'));
     $r->print('</form>');
     $r->print(&Apache::loncommon::end_page());
     return;
 }
 
-sub javascript_set_colnums {
-    return <<END;
-function setDisplayColumns() {
-    if (document.pickactions.width.value > 1100) {
-        document.pickactions.numcols[1].checked = true;
-    } else {
-        document.pickactions.numcols[0].checked = true;
-    }
-}
-END
-}
-
 sub color_pick_js {
     my $pjump_def = &Apache::lonhtmlcommon::pjump_javascript_definition();
     my $output = <<"ENDCOL";

--raeburn1269278951--