[LON-CAPA-cvs] cvs: loncom /interface lonquickgrades.pm
www
www@source.lon-capa.org
Wed, 09 Mar 2011 00:35:57 -0000
www Wed Mar 9 00:35:57 2011 EDT
Modified files:
/loncom/interface lonquickgrades.pm
Log:
Move up and down
Index: loncom/interface/lonquickgrades.pm
diff -u loncom/interface/lonquickgrades.pm:1.71 loncom/interface/lonquickgrades.pm:1.72
--- loncom/interface/lonquickgrades.pm:1.71 Sun Feb 20 23:57:35 2011
+++ loncom/interface/lonquickgrades.pm Wed Mar 9 00:35:57 2011
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Quick Student Grades Display
#
-# $Id: lonquickgrades.pm,v 1.71 2011/02/20 23:57:35 www Exp $
+# $Id: lonquickgrades.pm,v 1.72 2011/03/09 00:35:57 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -165,7 +165,7 @@
sub endGradeScreen {
my ($r)=@_;
- $r->print('</div></div></div>');
+ $r->print('</div></div></div>'.&Apache::loncommon::end_page());
}
@@ -398,9 +398,7 @@
.&Apache::loncommon::end_data_table_row());
}
- $r->print(&Apache::loncommon::end_data_table()
- .&Apache::loncommon::end_page());
-
+ $r->print(&Apache::loncommon::end_data_table());
}
#
@@ -425,24 +423,26 @@
# Loading old categories
%categories=&Apache::lonnet::dump('grading_categories',$cdom,$cnum);
# Storing
- if (($cangrade) && (($env{'form.storechanges'}) || ($env{'form.storemove'} ne ''))) {
+ if (($cangrade) && (($env{'form.storechanges'}) || ($env{'form.storemove'} ne '') || ($env{'form.cmd'} ne ''))) {
# Process the changes
%categories=&process_category_edits($r,$cangrade,%categories);
# Actually store
- &Apache::lonnet::logthis("Storing ".$categories{'order'});
&Apache::lonnet::put('grading_categories',\%categories,$cdom,$cnum);
}
# new categories loaded now
# Form only generated if user can change the grading categories
if ($cangrade) {
- $r->print('<form method="post">');
+ $r->print('<form method="post" name="quickform" action="/adm/quickgrades">');
}
#
&output_category_table($r,$cangrade,$navmap,%categories);
#
if ($cangrade) {
$r->print('<input type="hidden" name="storemove" value="" />'.
- '<input type="submit" name="storechanges" value="'.&mt("Save changes to grading categories").'" /></form>');
+ '<input type="hidden" name="cmd" value="" />'.
+ '<input type="submit" name="storechanges" value="'.&mt("Save changes to grading categories").'" />'.
+ '<script>function storecmd (cmd) { document.quickform.cmd.value=cmd; document.quickform.submit(); }</script>'.
+ '</form>');
}
}
@@ -453,20 +453,25 @@
sub process_category_edits {
my ($r,$cangrade,%categories)=@_;
unless ($cangrade) { return %categories; }
+# First store everything
+ foreach my $id (split(/\,/,$categories{'order'})) {
+ %categories=&set_category_name($cangrade,$id,$env{'form.name_'.$id},%categories);
+ %categories=&set_category_total($cangrade,$id,$env{'form.totaltype_'.$id},$env{'form.total_'.$id},%categories);
+ %categories=&set_category_weight($cangrade,$id,$env{'form.weight_'.$id},%categories);
+# More changes here
+ }
+
+# Now deal with commands
my $cmd=$env{'form.cmd'};
if ($cmd eq 'createnewcat') {
%categories=&make_new_category($r,$cangrade,undef,%categories);
+ } elsif ($cmd=~/^up\_(.+)$/) {
+ %categories=&move_up_category($1,$cangrade,%categories);
+ } elsif ($cmd=~/^down\_(.+)$/) {
+ %categories=&move_down_category($1,$cangrade,%categories);
} elsif ($cmd=~/^delcat\_(.+)$/) {
%categories=&del_category($1,$cangrade,%categories);
- } else {
-# Simply store the rest of the stuff
- foreach my $id (split(/\,/,$categories{'order'})) {
- %categories=&set_category_name($cangrade,$id,$env{'form.name_'.$id},%categories);
- %categories=&set_category_total($cangrade,$id,$env{'form.totaltype_'.$id},$env{'form.total_'.$id},%categories);
- %categories=&set_category_weight($cangrade,$id,$env{'form.weight_'.$id},%categories);
-# More changes here
- }
- }
+ }
return %categories;
}
@@ -530,12 +535,12 @@
$r->print(<<ENDMOVE);
<td>
<div class="LC_docs_entry_move">
- <a href='/adm/quickgrades?cmd=up_$id&storechanges=1'>
+ <a href='javascript:storecmd("up_$id");'>
<img src="${iconpath}move_up.gif" alt='$lt{'up'}' class="LC_icon" />
</a>
</div>
<div class="LC_docs_entry_move">
- <a href='/adm/quickgrades?cmd=down_$id&storechanges=1'>
+ <a href='javascript:storecmd("down_$id");'>
<img src="${iconpath}move_down.gif" alt='$lt{'dw'}' class="LC_icon" />
</a>
</div>
@@ -550,7 +555,7 @@
}
}
$r->print("\n</select>\n</td>\n");
- $r->print('<td><a href="/adm/quickgrades?cmd=delcat_'.$id.'&storechanges=1">'.&mt('Delete').'</a></td>');
+ $r->print('<td><a href="javascript:storecmd(\'delcat_'.$id.'\');">'.&mt('Delete').'</a></td>');
$r->print('<td><input type="text" name="name_'.$id.
'" value="'.&Apache::lonhtmlcommon::entity_encode($categories{$id.'_name'}).'" /></td>');
} else {
@@ -602,7 +607,7 @@
my ($r,$cangrade,$sum,$total)=@_;
$r->print(&Apache::loncommon::start_data_table_row());
if ($cangrade) {
- $r->print('<td colspan="3"><a href="/adm/quickgrades?cmd=createnewcat&storechanges=1">'.&mt('Create New Category').'</a></td>');
+ $r->print('<td colspan="3"><a href="javascript:storecmd(\'createnewcat\');">'.&mt('Create New Category').'</a></td>');
}
$r->print('<td colspan="5">'.&mt('Current:').$sum.'<br />'.&mt('Total:').$total.'<br /></td>');
}
@@ -648,6 +653,29 @@
}
#
+# Move category up
+#
+
+sub move_up_category {
+ my ($id,$cangrade,%categories)=@_;
+ my $currentpos=¤t_pos_category($id,%categories);
+ if ($currentpos<1) { return %categories; }
+ return &move_category($id,$cangrade,$currentpos-1,%categories);
+}
+
+#
+# Move category down
+#
+
+sub move_down_category {
+ my ($id,$cangrade,%categories)=@_;
+ my $currentpos=¤t_pos_category($id,%categories);
+ my @order=split(/\,/,$categories{'order'});
+ if ($currentpos>=$#order) { return %categories; }
+ return &move_category($id,$cangrade,$currentpos+1,%categories);
+}
+
+#
# Move a category to a desired position n the display order
#