]> Frank Brehm's Git Trees - books.git/commitdiff
Button für Standardwert Sortierung, Sortierung als Nutzereinstellung gespeichert
authorFrank Brehm <frank@brehm-online.com>
Mon, 22 Dec 2008 22:16:01 +0000 (22:16 +0000)
committerFrank Brehm <frank@brehm-online.com>
Mon, 22 Dec 2008 22:16:01 +0000 (22:16 +0000)
lib/FrBr/Books/Controller/Books.pm
lib/FrBr/Books/Controller/Logout.pm
lib/FrBr/Books/Util/User.pm
root/src/books/sorting.tt2

index b327382c64c3067bdfcc4b929d331bb9554888ca..f01525ffbe33b8b3a99709f629652329b3dea30a 100644 (file)
@@ -16,6 +16,7 @@ use FrBr::Books::Util::Serie;
 use FrBr::Books::Util::Ort;
 use FrBr::Books::Util::Verlag;
 use FrBr::Books::Util::Waehrung;
+use FrBr::Books::Util::User;
 
 =head1 NAME
 
@@ -211,6 +212,16 @@ sub sorting : Local {
     $c->stash->{'book_order_criteria'} = [];
     $c->stash->{'book_order_col_dir'}  = {};
 
+    # Standardwerte setzen und zurück in Liste
+    if ( $c->request->params->{'restore_defaults'} ) {
+        $c->session->{'book_order_criteria'} = [ 'autoren', 'title' ];
+        $c->session->{'book_list_page'} = 1;
+        save_user_prefs($c) if $c->user_exists;
+        $c->detach("/books/list");
+        return 1;
+    }
+
+    # Neue Sortierkriterien setzen
     if ( $c->request->params->{'do_save'} ) {
 
         my $col_ids = {};
@@ -237,6 +248,7 @@ sub sorting : Local {
 
         $c->session->{'book_order_criteria'} = $sort_order;
         $c->session->{'book_list_page'} = 1;
+        save_user_prefs($c) if $c->user_exists;
 
     }
 
index b7f0d73a7f3620600939d2511ab12fa1ab4162c7..27ecf2fe5d7b6c8e2e24e0b5ec35ca3b9a82ecf4 100644 (file)
@@ -7,6 +7,7 @@ use strict;
 use warnings;
 use base 'Catalyst::Controller';
 use FrBr::Common;
+use FrBr::Books::Util::User;
 
 =head1 NAME
 
@@ -31,6 +32,7 @@ sub index : Private {
     my $K = ( caller(0) )[3] . "(): ";
 
     if ( $c->user_exists ) {
+        save_user_prefs($c);
         # Clear the user's state
         $c->logout;
     }
@@ -40,6 +42,7 @@ sub index : Private {
         autor_data_edit
         book_data_edit
         book_list_page
+        book_order_criteria
         category_data_edit
         delete_book_id
         from_book_list
index 7238ba296f9a541f5728ef10765dd0d7300168d7..c60c9b6e6a1f5e31b50839171e3017e3de78ad2e 100644 (file)
@@ -65,6 +65,7 @@ sub save_user_prefs {
     my $prefs = {};
 
     $prefs->{'list_length'} = $c->stash->{'list_length'};
+    $prefs->{'book_order_criteria'} = $c->session->{'book_order_criteria'} if $c->session->{'book_order_criteria'};
 
     my $dump = Dump($prefs);
     $c->model('Schema::UserAdd')->search( { 'user_id' => $user_id } )->update( { 'prefs' => $dump } ) ;
@@ -113,6 +114,8 @@ sub restore_user_prefs {
         $c->session->{'list_length'} = $prefs->{'list_length'};
     }
 
+    $c->session->{'book_order_criteria'} = $prefs->{'book_order_criteria'} if $prefs->{'book_order_criteria'};
+
     return 1;
 
 }
index aa61dd61c1531d891379630f27fee30ce02120fd..de46728ef2ab39ba81862e82fa2d2c8f270c4c50 100644 (file)
@@ -21,7 +21,7 @@
   [%- ELSE -%]
        [%- c_col = '###' -%]
        [%- dir = 'ASC' -%]
-  [%- END -%]
+  [%- END %]
   <tr>
     <th>[% nr %]. Kriterium</th>
     <td><select name="sort_column-[% i %]" size="1">[% FOR col IN booklist_sort_kriterien %]<option value="[% col %]"[% IF col == c_col %] selected[% END %]>[% booklist_sort_namen.$col %]</option>[% END %]
@@ -47,7 +47,8 @@
   </tr><tr>
     <td colspan="3" class="empty"></td>
   </tr><tr>
-    <th colspan="3" class="button"><input type="submit" name="do_save" value="  OK  " /></th>
+    <th colspan="3" class="button"><input type="submit" name="do_save" value="  OK  " />&nbsp;&nbsp;&nbsp;<input
+                                          type="submit" name="restore_defaults" value="Standard" /></th>
   </tr>
 </table>
 </form>