Update of /cvs/scoop/scoop/lib/Scoop/Admin
In directory sodium.sabren.com:/tmp/cvs-serv14523/lib/Scoop/Admin
Modified Files:
Prefs.pm
Log Message:
Fixes for userprefs (and comment post form) and some patented rusty
"wouldn't it be cool if" features for userprefs.
-janra
Index: Prefs.pm
===================================================================
RCS file: /cvs/scoop/scoop/lib/Scoop/Admin/Prefs.pm,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** Prefs.pm 4 Aug 2004 21:49:48 -0000 1.1
--- Prefs.pm 17 Aug 2004 19:03:41 -0000 1.2
***************
*** 67,71 ****
$keys->{pref_visible} = $params->{visible} ? ' CHECKED' : '';
$keys->{pref_enabled} = $params->{enabled} ? ' CHECKED' : '';
! $keys->{pref_required} = $params->{required} ? ' CHECKED' : '';
# and finally the selectboxes
--- 67,75 ----
$keys->{pref_visible} = $params->{visible} ? ' CHECKED' : '';
$keys->{pref_enabled} = $params->{enabled} ? ' CHECKED' : '';
!
! # radio buttons
! $keys->{pref_signup_normal} = ( $params->{signup} eq 'normal' ) ? ' CHECKED' : '';
! $keys->{pref_signup_signup} = ( $params->{signup} eq 'signup' ) ? ' CHECKED' : '';
! $keys->{pref_signup_required} = ( $params->{signup} eq 'required' ) ? ' CHECKED' : '';
# and finally the selectboxes
***************
*** 93,97 ****
my $params;
! foreach my $item (qw(prefname title description visible html perm_view perm_edit var req_tu default_value length regex page field display_order template display_fmt enabled required)) {
$params->{$item} = $S->cgi->param($item);
}
--- 97,101 ----
my $params;
! foreach my $item (qw(prefname title description visible html perm_view perm_edit var req_tu default_value length regex page field display_order template display_fmt enabled signup)) {
$params->{$item} = $S->cgi->param($item);
}
***************
*** 107,110 ****
--- 111,117 ----
$set =~ s/, $//;
+ # mangle the display_order
+ $S->_pref_display_order($params->{prefname},$params->{display_order},$params->{page});
+
my $q_pref = $S->dbh->quote($pref);
my ($rv, $sth) = $S->db_update({
***************
*** 316,319 ****
--- 323,351 ----
return $values;
+ }
+
+ sub _pref_display_order {
+ my $S = shift;
+ my $prefname = shift;
+ my $order = shift;
+ my $page = shift;
+
+ # check to see if there's a pref using the display order value we're saving
+ my ($rv,$sth) = $S->db_select({
+ DEBUG => $DEBUG,
+ WHAT => '*',
+ FROM => 'pref_items',
+ WHERE => qq|prefname!=$prefname AND display_order=$order AND page=$page|
+ });
+ return if ( $rv == 0 );
+
+ # ok, something on the same page has the same display order and it isn't the current pref
+ ($rv,$sth) = $S->db_update({
+ DEBUG => $DEBUG,
+ WHAT => 'pref_items',
+ SET => qq|display_order=display_order+1|,
+ WHERE => qq|page=$page AND display_order>=$order|
+ });
+ return;
}