Merge commit 'kc/master'
authorChris Cormack <chrisc@catalyst.net.nz>
Thu, 24 Jun 2010 22:43:18 +0000 (10:43 +1200)
committerChris Cormack <chrisc@catalyst.net.nz>
Thu, 24 Jun 2010 22:43:18 +0000 (10:43 +1200)
Conflicts:
docs/history.txt

106 files changed:
C4/Auth.pm
C4/Installer/PerlModules.pm
C4/Letters.pm
C4/Members.pm
C4/Reserves.pm
C4/XSLT.pm
acqui/basket.pl
acqui/z3950_search.pl
admin/aqbudgets.pl
admin/authorised_values.pl
admin/systempreferences.pl
basket/basket.pl
docs/history.txt
installer/data/mysql/de-DE/mandatory/sysprefs.sql
installer/data/mysql/de-DE/mandatory/userpermissions.sql
installer/data/mysql/en/mandatory/sysprefs.sql
installer/data/mysql/en/mandatory/userpermissions.sql
installer/data/mysql/fr-FR/1-Obligatoire/unimarc_standard_systemprefs.sql
installer/data/mysql/fr-FR/1-Obligatoire/userpermissions.sql
installer/data/mysql/kohastructure.sql
installer/data/mysql/pl-PL/mandatory/sysprefs.sql
installer/data/mysql/pl-PL/mandatory/userpermissions.sql
installer/data/mysql/ru-RU/mandatory/permissions_and_user_flags.sql
installer/data/mysql/ru-RU/mandatory/system_preferences_full_optimal_for_install_only.sql
installer/data/mysql/ru-RU/mandatory/system_preferences_only_translation_updating.sql
installer/data/mysql/uk-UA/mandatory/permissions_and_user_flags.sql
installer/data/mysql/uk-UA/mandatory/system_preferences_full_optimal_for_install_only.sql
installer/data/mysql/uk-UA/mandatory/system_preferences_only_translation_updating.sql
installer/data/mysql/updatedatabase.pl
koha-tmpl/intranet-tmpl/prog/en/css/addbiblio.css
koha-tmpl/intranet-tmpl/prog/en/includes/biblio-default-view.inc [new file with mode: 0644]
koha-tmpl/intranet-tmpl/prog/en/includes/mainmenu.inc
koha-tmpl/intranet-tmpl/prog/en/includes/serials-menu.inc
koha-tmpl/intranet-tmpl/prog/en/includes/serials-toolbar.inc
koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basket.tmpl
koha-tmpl/intranet-tmpl/prog/en/modules/acqui/booksellers.tmpl
koha-tmpl/intranet-tmpl/prog/en/modules/acqui/supplier.tmpl
koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqbudgets.tmpl
koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqcontract.tmpl
koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqplan.tmpl
koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/admin.pref
koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref
koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref
koha-tmpl/intranet-tmpl/prog/en/modules/authorities/authorities.tmpl
koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tmpl
koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/results.tmpl
koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/addbiblio.tmpl
koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/merge.tmpl
koha-tmpl/intranet-tmpl/prog/en/modules/circ/branchoverdues.tmpl
koha-tmpl/intranet-tmpl/prog/en/modules/circ/overdue.tmpl
koha-tmpl/intranet-tmpl/prog/en/modules/circ/pendingreserves.tmpl
koha-tmpl/intranet-tmpl/prog/en/modules/circ/reserveratios.tmpl
koha-tmpl/intranet-tmpl/prog/en/modules/circ/transferstoreceive.tmpl
koha-tmpl/intranet-tmpl/prog/en/modules/circ/waitingreserves.tmpl
koha-tmpl/intranet-tmpl/prog/en/modules/help/members/member-flags.tmpl
koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tmpl
koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tmpl
koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-home.tmpl
koha-tmpl/intranet-tmpl/prog/en/modules/serials/subscription-add.tmpl
koha-tmpl/intranet-tmpl/prog/en/modules/tools/batchMod-del.tmpl
koha-tmpl/intranet-tmpl/prog/en/modules/virtualshelves/shelves.tmpl
koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetDetail.xsl
koha-tmpl/intranet-tmpl/prog/en/xslt/UNIMARCslim2intranetDetail.xsl
koha-tmpl/intranet-tmpl/prog/img/clone-subfield.png [new file with mode: 0644]
koha-tmpl/intranet-tmpl/prog/img/delete-subfield.png [new file with mode: 0644]
koha-tmpl/intranet-tmpl/prog/img/famfamfam/BK.png [new file with mode: 0644]
koha-tmpl/intranet-tmpl/prog/img/famfamfam/CF.png [new file with mode: 0644]
koha-tmpl/intranet-tmpl/prog/img/famfamfam/MM.png [new file with mode: 0644]
koha-tmpl/intranet-tmpl/prog/img/famfamfam/MP.png [new file with mode: 0644]
koha-tmpl/intranet-tmpl/prog/img/famfamfam/MU.png [new file with mode: 0644]
koha-tmpl/intranet-tmpl/prog/img/famfamfam/SE.png [new file with mode: 0644]
koha-tmpl/intranet-tmpl/prog/img/famfamfam/VM.png [new file with mode: 0644]
koha-tmpl/opac-tmpl/prog/en/modules/opac-shelves.tmpl
koha-tmpl/opac-tmpl/prog/en/modules/opac-suggestions.tmpl
koha-tmpl/opac-tmpl/prog/en/modules/opac-userupdate.tmpl
koha-tmpl/opac-tmpl/prog/en/xslt/MARC21slim2OPACDetail.xsl
koha-tmpl/opac-tmpl/prog/en/xslt/UNIMARCslim2OPACDetail.xsl
koha-tmpl/opac-tmpl/prog/en/xslt/compact.xsl [new file with mode: 0644]
kohaversion.pl
members/member-flags.pl
opac/opac-ISBDdetail.pl
opac/opac-MARCdetail.pl
opac/opac-showmarc.pl
reserve/request.pl
serials/acqui-search-result.pl
serials/acqui-search.pl
serials/checkexpiration.pl
serials/claims.pl
serials/member-search.pl
serials/routing-preview.pl
serials/routing.pl
serials/serial-issues.pl
serials/serials-collection.pl
serials/serials-edit.pl
serials/serials-home.pl
serials/statecollection.pl
serials/subscription-add.pl
serials/subscription-bib-search.pl
serials/subscription-detail.pl
serials/subscription-renew.pl
serials/viewalerts.pl
svc/config/systempreferences
t/Installer_pm.t [new file with mode: 0755]
tools/batchMod.pl
xt/permissions.t
xt/syspref.t

index 86adf88..6d4f35f 100644 (file)
@@ -206,24 +206,16 @@ sub get_template_and_user {
             }
         }
 
-        if (C4::Context->preference('GranularPermissions')) {
-            if ( $flags ) {
-                foreach my $module (keys %$all_perms) {
-                    if ( $flags->{$module} == 1) {
-                        foreach my $subperm (keys %{ $all_perms->{$module} }) {
-                            $template->param( "CAN_user_${module}_${subperm}" => 1 );
-                        }
-                    } elsif ( ref($flags->{$module}) ) {
-                        foreach my $subperm (keys %{ $flags->{$module} } ) {
-                            $template->param( "CAN_user_${module}_${subperm}" => 1 );
-                        }
-                    }
-                }
-            }
-        } else {
+        if ( $flags ) {
             foreach my $module (keys %$all_perms) {
-                foreach my $subperm (keys %{ $all_perms->{$module} }) {
-                    $template->param( "CAN_user_${module}_${subperm}" => 1 );
+                if ( $flags->{$module} == 1) {
+                    foreach my $subperm (keys %{ $all_perms->{$module} }) {
+                        $template->param( "CAN_user_${module}_${subperm}" => 1 );
+                    }
+                } elsif ( ref($flags->{$module}) ) {
+                    foreach my $subperm (keys %{ $flags->{$module} } ) {
+                        $template->param( "CAN_user_${module}_${subperm}" => 1 );
+                    }
                 }
             }
         }
@@ -512,9 +504,10 @@ that the user must have the "circulate" privilege in order to
 proceed. To make sure that access control is correct, the
 C<$flagsrequired> parameter must be specified correctly.
 
-If the GranularPermissions system preference is ON, the
-value of each key in the C<flagsrequired> hash takes on an additional
-meaning, e.g.,
+Koha also has a concept of sub-permissions, also known as
+granular permissions.  This makes the value of each key
+in the C<flagsrequired> hash take on an additional
+meaning, i.e.,
 
  1
 
@@ -1577,20 +1570,16 @@ sub haspermission {
     }
     return $flags if $flags->{superlibrarian};
     foreach my $module ( keys %$flagsrequired ) {
-        if (C4::Context->preference('GranularPermissions')) {
-            my $subperm = $flagsrequired->{$module};
-            if ($subperm eq '*') {
-                return 0 unless ( $flags->{$module} == 1 or ref($flags->{$module}) );
-            } else {
-                return 0 unless ( $flags->{$module} == 1 or
-                                    ( ref($flags->{$module}) and
-                                      exists $flags->{$module}->{$subperm} and
-                                      $flags->{$module}->{$subperm} == 1
-                                    )
-                                );
-            }
+        my $subperm = $flagsrequired->{$module};
+        if ($subperm eq '*') {
+            return 0 unless ( $flags->{$module} == 1 or ref($flags->{$module}) );
         } else {
-            return 0 unless ( $flags->{$module} );
+            return 0 unless ( $flags->{$module} == 1 or
+                                ( ref($flags->{$module}) and
+                                  exists $flags->{$module}->{$subperm} and
+                                  $flags->{$module}->{$subperm} == 1
+                                )
+                            );
         }
     }
     return $flags;
index 9419ce8..35d7ce0 100644 (file)
@@ -80,16 +80,17 @@ sub version_info {
         }
     }
     else {
-        for (keys(%$PERL_DEPS)) {
-            eval "require $_";
+        for (sort keys(%{$PERL_DEPS})) {
+            my $pkg = $_;  #  $_ holds the string
+            eval "require $pkg";
             if ($@) {
                 push (@{$self->{'missing_pm'}}, {$_ => {cur_ver => 0, min_ver => $PERL_DEPS->{$_}->{'min_ver'}, required => $PERL_DEPS->{$_}->{'required'}, usage => $PERL_DEPS->{$_}->{'usage'}}});
             }
-            elsif ($_->VERSION lt $PERL_DEPS->{$_}->{'min_ver'}) {
-                push (@{$self->{'upgrade_pm'}}, {$_ => {cur_ver => $_->VERSION, min_ver => $PERL_DEPS->{$_}->{'min_ver'}, required => $PERL_DEPS->{$_}->{'required'}, usage => $PERL_DEPS->{$_}->{'usage'}}});
+            elsif ($pkg->VERSION lt $PERL_DEPS->{$_}->{'min_ver'}) {
+                push (@{$self->{'upgrade_pm'}}, {$_ => {cur_ver => $pkg->VERSION, min_ver => $PERL_DEPS->{$_}->{'min_ver'}, required => $PERL_DEPS->{$_}->{'required'}, usage => $PERL_DEPS->{$_}->{'usage'}}});
             }
             else {
-                push (@{$self->{'current_pm'}}, {$_ => {cur_ver => $_->VERSION, min_ver => $PERL_DEPS->{$_}->{'min_ver'}, required => $PERL_DEPS->{$_}->{'required'}, usage => $PERL_DEPS->{$_}->{'usage'}}});
+                push (@{$self->{'current_pm'}}, {$_ => {cur_ver => $pkg->VERSION, min_ver => $PERL_DEPS->{$_}->{'min_ver'}, required => $PERL_DEPS->{$_}->{'required'}, usage => $PERL_DEPS->{$_}->{'usage'}}});
             }
         }
         return;
index 47abf6c..3f634e1 100644 (file)
@@ -803,7 +803,12 @@ sub _send_message_by_email ($;$$$) {
             return;
         }
         my $which_address = C4::Context->preference('AutoEmailPrimaryAddress');
-        $to_address = $member->{$which_address};
+        # If the system preference is set to 'first valid' (value == OFF), look up email address
+        if ($which_address eq 'OFF') {
+            $to_address = GetFirstValidEmailAddress( $message->{'borrowernumber'} );
+        } else {
+            $to_address = $member->{$which_address};
+        }
         unless ($to_address) {  
             # warn "FAIL: No 'to_address' and no email for " . ($member->{surname} ||'') . ", borrowernumber ($message->{borrowernumber})";
             # warning too verbose for this more common case?
index eba71f5..cddbf41 100644 (file)
@@ -56,6 +56,8 @@ BEGIN {
                &getzipnamecity 
                &getidcity
 
+                &GetFirstValidEmailAddress
+
                &GetAge 
                &GetCities 
                &GetRoadTypes 
@@ -1247,6 +1249,33 @@ sub getidcity {
     return $data;
 }
 
+=head2 GetFirstValidEmailAddress
+
+  $email = GetFirstValidEmailAddress($borrowernumber);
+
+Return the first valid email address for a borrower, given the borrowernumber.  For now, the order 
+is defined as email, emailpro, B_email.  Returns the empty string if the borrower has no email 
+addresses.
+
+=cut
+
+sub GetFirstValidEmailAddress {
+    my $borrowernumber = shift;
+    my $dbh = C4::Context->dbh;
+    my $sth = $dbh->prepare( "SELECT email, emailpro, B_email FROM borrowers where borrowernumber = ? ");
+    $sth->execute( $borrowernumber );
+    my $data = $sth->fetchrow_hashref;
+
+    if ($data->{'email'}) {
+       return $data->{'email'};
+    } elsif ($data->{'emailpro'}) {
+       return $data->{'emailpro'};
+    } elsif ($data->{'B_email'}) {
+       return $data->{'B_email'};
+    } else {
+       return '';
+    }
+}
 
 =head2 GetExpiryDate 
 
index 4ca555f..bcb27bb 100644 (file)
@@ -57,7 +57,8 @@ This modules provides somes functions to deal with reservations.
   - priority >0      : then the reserve is at 1st stage, and not yet affected to any item.
              =0      : then the reserve is being dealed
   - found : NULL       : means the patron requested the 1st available, and we haven't choosen the item
-            W(aiting)  : the reserve has an itemnumber affected, and is on the way
+            T(ransit)  : the reserve is linked to an item but is in transit to the pickup branch
+            W(aiting)  : the reserve is linked to an item, is at the pickup branch, and is waiting on the hold shelf
             F(inished) : the reserve has been completed, and is done
   - itemnumber : empty : the reserve is still unaffected to an item
                  filled: the reserve is attached to an item
@@ -67,15 +68,15 @@ This modules provides somes functions to deal with reservations.
   a library having it run "transfertodo", and clic on the list    
          if there is no transfer to do, the reserve waiting
          patron can pick it up                                    P =0, F=W,    I=filled 
-         if there is a transfer to do, write in branchtransfer    P =0, F=NULL, I=filled
+         if there is a transfer to do, write in branchtransfer    P =0, F=T,    I=filled
            The pickup library recieve the book, it check in       P =0, F=W,    I=filled
   The patron borrow the book                                      P =0, F=F,    I=filled
   
   ==== 2nd use case ====
   patron requests a document, a given item,
     If pickup is holding branch                                   P =0, F=W,   I=filled
-    If transfer needed, write in branchtransfer                   P =0, F=NULL, I=filled
-        The pickup library recieve the book, it checks it in      P =0, F=W,    I=filled
+    If transfer needed, write in branchtransfer                   P =0, F=T,    I=filled
+        The pickup library receive the book, it checks it in      P =0, F=W,    I=filled
   The patron borrow the book                                      P =0, F=F,    I=filled
 
 =head1 FUNCTIONS
@@ -1005,7 +1006,7 @@ sub CancelReserve {
         $sth->execute( $biblio, $borr );
 
         # now fix the priority on the others....
-        _FixPriority( $priority, $biblio );
+        _FixPriority( $biblio, $borr );
     }
 }
 
@@ -1151,7 +1152,7 @@ sub ModReserveFill {
     # now fix the priority on the others (if the priority wasn't
     # already sorted!)....
     unless ( $priority == 0 ) {
-        _FixPriority( $priority, $biblionumber );
+        _FixPriority( $biblionumber, $borrowernumber );
     }
 }
 
@@ -1222,7 +1223,8 @@ sub ModReserveAffect {
     $query = "
         UPDATE reserves
         SET    priority = 0,
-               itemnumber = ?
+               itemnumber = ?,
+               found = 'T'
         WHERE borrowernumber = ?
           AND biblionumber = ?
     ";
@@ -1509,13 +1511,13 @@ sub _FixPriority {
      }
     if ( $rank eq "W" || $rank eq "0" ) {
 
-        # make sure priority for waiting items is 0
+        # make sure priority for waiting or in-transit items is 0
         my $query = qq/
             UPDATE reserves
             SET    priority = 0
             WHERE biblionumber = ?
               AND borrowernumber = ?
-              AND found ='W'
+              AND found IN ('W', 'T')
         /;
         my $sth = $dbh->prepare($query);
         $sth->execute( $biblio, $borrowernumber );
@@ -1532,7 +1534,7 @@ sub _FixPriority {
         SELECT borrowernumber, reservedate, constrainttype
         FROM   reserves
         WHERE  biblionumber   = ?
-          AND  ((found <> 'W') or found is NULL)
+          AND  ((found <> 'W' AND found <> 'T') or found is NULL)
         ORDER BY priority ASC
     /;
     my $sth = $dbh->prepare($query);
index d454981..1c45e44 100644 (file)
@@ -128,7 +128,7 @@ sub XSLTParse4Display {
     my $itemsxml  = buildKohaItemsNamespace($biblionumber);
     my $xmlrecord = $record->as_xml(C4::Context->preference('marcflavour'));
     my $sysxml = "<sysprefs>\n";
-    foreach my $syspref ( qw/OPACURLOpenInNewWindow DisplayOPACiconsXSLT URLLinkText viewISBD/ ) {
+    foreach my $syspref ( qw/OPACURLOpenInNewWindow DisplayOPACiconsXSLT URLLinkText viewISBD OPACBaseURL/ ) {
         $sysxml .= "<syspref name=\"$syspref\">" .
                    C4::Context->preference( $syspref ) .
                    "</syspref>\n";
index afdc460..005fcb9 100755 (executable)
@@ -205,6 +205,7 @@ if ( $op eq 'delete_confirm' ) {
                            name =>   "No group");
         if ( ! $basket->{basketgroupid} ) {
             $emptygroup{default} = 1;
+            $emptygroup{nogroup} = 1;
         }
         unshift( @$basketgroups, \%emptygroup );
     }
index 5c1a060..1dc5519 100755 (executable)
@@ -90,14 +90,14 @@ my $DEBUG = 0;    # if set to 1, many debug message are send on syslog.
 my $frameworks = getframeworks;
 my @frameworkcodeloop;
 foreach my $thisframeworkcode ( keys %$frameworks ) {
-    my %row = (
+    my $row = {
         value         => $thisframeworkcode,
         frameworktext => $frameworks->{$thisframeworkcode}->{'frameworktext'},
-    );
-    if ( %row->{'value'} eq $frameworkcode){
-        %row->{'active'} = 'true';
+    };
+    if ( $row->{'value'} eq $frameworkcode){
+        $row->{'active'} = 'true';
     }
-    push @frameworkcodeloop, \%row;
+    push @frameworkcodeloop, $row;
 }
 
 $template->param( frameworkcode => $frameworkcode, 
index 9da555d..95f5f26 100755 (executable)
@@ -293,11 +293,11 @@ if ($op eq 'add_form') {
         $budget->{'remaining_pos'} = 1 if $budget->{'budget_remaining'} > 0;
         $budget->{'remaining_neg'} = 1 if $budget->{'budget_remaining'} < 0;
                for (grep {/total_levels_spent|budget_spent|budget_amount|budget_remaining|budget_unalloc/} keys %$budget){
-        $$budget{$_}               = $num->format_price( $$budget{$_} ) if defined($$budget{$_})
+            $budget->{$_}               = $num->format_price( $budget->{$_} ) if defined($budget->{$_})
                }
 
         # Value of budget_spent equals 0 instead of undefined value
-        $$budget{"budget_spent"} = $num->format_price(0) unless defined($$budget{"budget_spent"});
+        $budget->{"budget_spent"} = $num->format_price(0) unless defined($budget->{"budget_spent"});
 
         my $borrower = &GetMember( borrowernumber=>$budget->{budget_owner_id} );
         $budget->{"budget_owner_name"}     = $borrower->{'firstname'} . ' ' . $borrower->{'surname'};
index 32acb5b..de05512 100755 (executable)
@@ -52,14 +52,10 @@ $searchfield =~ s/\,//g;
 my $script_name = "/cgi-bin/koha/admin/authorised_values.pl";
 my $dbh = C4::Context->dbh;
 
-# my $subpermission = C4::Context->preference('GranularPermissions') ? 
-#     { editcatalogue => ... } :
-#     {    parameters => 1   } ;
-
 my ($template, $borrowernumber, $cookie)= get_template_and_user({
     template_name => "admin/authorised_values.tmpl",
     authnotrequired => 0,
-    flagsrequired => {parameters => 1},     # soon $subpermission
+    flagsrequired => {parameters => 1},
     query => $input,
     type => "intranet",
     debug => 1,
index 6ed5310..9e90d61 100755 (executable)
@@ -97,7 +97,6 @@ $tabsysprefs{DebugLevel}            = "Admin";
 $tabsysprefs{SessionStorage}        = "Admin";
 $tabsysprefs{noItemTypeImages}      = "Admin";
 $tabsysprefs{OPACBaseURL}           = "Admin";
-$tabsysprefs{GranularPermissions}   = "Admin";
 
 # Authorities
 $tabsysprefs{authoritysep}          = "Authorities";
index de70a31..ed6e5a4 100755 (executable)
@@ -102,10 +102,10 @@ foreach my $biblionumber ( @bibs ) {
     $dat->{MARCURLS}    = $marcurlsarray;
     $dat->{HASAUTHORS}  = $hasauthors;
 
-    if ( C4::Context->preference("BiblioDefaultView") eq "normal" ) {
+    if ( C4::Context->preference("IntranetBiblioDefaultView") eq "normal" ) {
         $dat->{dest} = "/cgi-bin/koha/catalogue/detail.pl";
     }
-    elsif ( C4::Context->preference("BiblioDefaultView") eq "marc" ) {
+    elsif ( C4::Context->preference("IntranetBiblioDefaultView") eq "marc" ) {
         $dat->{dest} = "/cgi-bin/koha/catalogue/MARCdetail.pl";
     }
     else {
index e1a1e9a..cf9f5ab 100644 (file)
@@ -491,4 +491,5 @@ April 30 2010       Jared CAMINS-ESAKOV becomes the 112th committer to have a patch ac
 May 4 2010     Koustubha Kale becomes the 113th committer to have a patch accepted
 May 4 2010     Community Handover meeting http://wiki.koha-community.org/wiki/Community_Handover_IRC_Meeting,_4_May_2010
 May 5 2010     General IRC meeting http://wiki.koha-community.org/wiki/General_Meeting,_May_5_2010
-May 14 2010    Matthew Hunt becomes the 114th committer to have a patch accepted
+May 5 2010     Matthew Hunt becomes the 114th committer to have a patch accepted
+May 19 2010    Marcel de Rooy becomes the 115th committer to have a patch accepted
index 276c7cd..2a0be55 100644 (file)
@@ -184,7 +184,6 @@ INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OAI-PMH:ConfFile','','If empty, Koha OAI Server operates in normal mode, otherwise it operates in extended mode.',NULL,'File');
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OPACItemHolds','1','Allow OPAC users to place hold on specific items. If OFF, users can only request next available copy.','','YesNo');
 
-INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('GranularPermissions','0','Use detailed staff user permissions',NULL,'YesNo');
 INSERT INTO `systempreferences` (variable, value,options,type, explanation) VALUES ('AddPatronLists','categorycode','categorycode|category_type','Choice','Allow user to choose what list to pick up from when adding patrons');
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('ExtendedPatronAttributes','0','Use extended patron IDs and attributes',NULL,'YesNo');
 
index ad68e2a..7e4bf7d 100644 (file)
@@ -5,6 +5,7 @@
    ( 6, 'modify_holds_priority', 'Vormerkungspriorität verändern'),
    ( 9, 'edit_catalogue', 'Katalogdaten bearbeiten (Titel- und Exemplardaten ändern)'),
    ( 9, 'fast_cataloging', 'Schnellaufnahmen anlegen'),
+   ( 9, 'edit_items', 'Exemplare bearbeiten'),
    (11, 'vendors_manage', 'Lieferanten verwalten'),
    (11, 'contracts_manage', 'Vereinbarungen verwalten'),
    (11, 'period_manage', 'Etats verwalten'),
    (13, 'manage_csv_profiles', 'CSV-Profile für Export verwalten'),
    (13, 'moderate_tags', 'Von Benutzern vergebene Tags moderieren'),
    (13, 'rotating_collections', 'Wandernde Sammlungen verwalten'),
+   (15, 'check_expiration', 'Ablauf eines Abonnements prüfen'),
+   (15, 'claim_serials', 'Fehlende Hefte reklamieren'),
+   (15, 'create_subscription', 'Neues Abonnement anlegen'),
+   (15, 'delete_subscription', 'Bestehende Abonnements löschen'),
+   (15, 'edit_subscription', 'Bestehende Abonnements bearbeiten'),
+   (15, 'receive_serials', 'Zugang von Heften'),
+   (15, 'renew_subscription', 'Abonnements verlängern'),
+   (15, 'routing', 'Umlauflisten verwalten'),
    (16, 'execute_reports', 'SQL-Reports ausführen'),
    (16, 'create_reports', 'SQL-Reports erstellen')
 ;
index dbd832c..3b1b683 100644 (file)
@@ -184,7 +184,6 @@ INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OAI-PMH:ConfFile','','If empty, Koha OAI Server operates in normal mode, otherwise it operates in extended mode.',NULL,'File');
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OPACItemHolds','1','Allow OPAC users to place hold on specific items. If OFF, users can only request next available copy.','','YesNo');
 
-INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('GranularPermissions','0','Use detailed staff user permissions',NULL,'YesNo');
 INSERT INTO `systempreferences` (variable, value,options,type, explanation) VALUES ('AddPatronLists','categorycode','categorycode|category_type','Choice','Allow user to choose what list to pick up from when adding patrons');
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('ExtendedPatronAttributes','0','Use extended patron IDs and attributes',NULL,'YesNo');
 
index 287d9da..ec61ea0 100644 (file)
@@ -36,6 +36,14 @@ INSERT INTO permissions (module_bit, code, description) VALUES
    (13, 'manage_csv_profiles', 'Manage CSV export profiles'),
    (13, 'moderate_tags', 'Moderate patron tags'),
    (13, 'rotating_collections', 'Manage rotating collections'),
+   (15, 'check_expiration', 'Check the expiration of a serial'),
+   (15, 'claim_serials', 'Claim missing serials'),
+   (15, 'create_subscription', 'Create a new subscription'),
+   (15, 'delete_subscription', 'Delete an existing subscription'),
+   (15, 'edit_subscription', 'Edit an existing subscription'),
+   (15, 'receive_serials', 'Serials receiving'),
+   (15, 'renew_subscription', 'Renew a subscription'),
+   (15, 'routing', 'Routing'),
    (16, 'execute_reports', 'Execute SQL reports'),
    (16, 'create_reports', 'Create SQL Reports')
 ;
index 7b85203..e94f160 100644 (file)
@@ -187,7 +187,6 @@ INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('CircControl',"ItemHomeLibrary",'Précise la bibliothèque qui contrôle les règles de prêt et d''amende',"PickupLibrary|PatronLibrary|ItemHomeLibrary",'Choice');
 
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OPACItemHolds','1','Si activé, les adhérents peuvent placer des réservations sur un exemplaire spécifique. Sinon, il ne peuvent que réserver le prochain disponible.','','YesNo');
-INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('GranularPermissions','0','Utiliser les permissions détaillées',NULL,'YesNo');
 INSERT INTO `systempreferences` (variable, value,options,type, explanation) VALUES ('AddPatronLists','categorycode','categorycode|category_type','Choice','Slectionner categorycode ou category_type permet d''afficher la liste des catégories ou des types de catégories à l''ajout d''un lecteur');
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('ExtendedPatronAttributes','0','Utiliser les attributs étendus pour les adhérents',NULL,'YesNo');
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('RenewSerialAddsSuggestion','0','Si activé, génère une suggestion d''achat à chaque Renouvellement d''abonnement',NULL,'YesNo');
index a300256..7f67d1b 100644 (file)
@@ -34,8 +34,16 @@ INSERT INTO permissions (module_bit, code, description) VALUES
    (13, 'manage_csv_profiles', 'Gérer les profils d''export CSV'),
    (13, 'moderate_tags', 'Moderate patron tags'),
    (13, 'rotating_collections', 'Gérer les collections tournantes'),
-   (13, 'batchmod', 'Modifier les exemplaires par lot'),
-   (13, 'batchdel', 'Supprimer les exemplaires par lot'),
+   (13, 'items_batchmod', 'Modifier les exemplaires par lot'),
+   (13, 'items_batchdel', 'Supprimer les exemplaires par lot'),
+   (15, 'check_expiration', 'Check the expiration of a serial'),
+   (15, 'claim_serials', 'Claim missing serials'),
+   (15, 'create_subscription', 'Create a new subscription'),
+   (15, 'delete_subscription', 'Delete an existing subscription'),
+   (15, 'edit_subscription', 'Edit an existing subscription'),
+   (15, 'receive_serials', 'Serials receiving'),
+   (15, 'renew_subscription', 'Renew a subscription'),
+   (15, 'routing', 'Routing'),
    (16, 'execute_reports', 'Lancer les rapports SQL'),
    (16, 'create_reports', 'Créer les rapports SQL Reports')
 
index db5b372..d8ed27d 100644 (file)
@@ -182,6 +182,7 @@ CREATE TABLE `biblioitems` (
   KEY `bibinoidx` (`biblioitemnumber`),
   KEY `bibnoidx` (`biblionumber`),
   KEY `isbn` (`isbn`),
+  KEY `issn` (`issn`),
   KEY `publishercode` (`publishercode`),
   CONSTRAINT `biblioitems_ibfk_1` FOREIGN KEY (`biblionumber`) REFERENCES `biblio` (`biblionumber`) ON DELETE CASCADE ON UPDATE CASCADE
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
@@ -254,6 +255,7 @@ CREATE TABLE `borrowers` (
   `altcontactcountry` text default NULL,
   `altcontactphone` varchar(50) default NULL,
   `smsalertnumber` varchar(50) default NULL,
+  `privacy` integer(11) DEFAULT '1' NOT NULL,
   UNIQUE KEY `cardnumber` (`cardnumber`),
   PRIMARY KEY `borrowernumber` (`borrowernumber`),
   KEY `categorycode` (`categorycode`),
@@ -420,6 +422,27 @@ CREATE TABLE `categories` (
   UNIQUE KEY `categorycode` (`categorycode`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
+--
+-- Table: collections
+--
+CREATE TABLE collections (
+  colId integer(11) NOT NULL auto_increment,
+  colTitle varchar(100) NOT NULL DEFAULT '',
+  colDesc text NOT NULL,
+  colBranchcode varchar(4) DEFAULT NULL comment 'branchcode for branch where item should be held.',
+  PRIMARY KEY (colId)
+) ENGINE=InnoDB DEFAULT CHARACTER SET utf8;
+
+--
+-- Table: collections_tracking
+--
+CREATE TABLE collections_tracking (
+  ctId integer(11) NOT NULL auto_increment,
+  colId integer(11) NOT NULL DEFAULT 0 comment 'collections.colId',
+  itemnumber integer(11) NOT NULL DEFAULT 0 comment 'items.itemnumber',
+  PRIMARY KEY (ctId)
+) ENGINE=InnoDB DEFAULT CHARACTER SET utf8;
+
 --
 -- Table structure for table `borrower_branch_circ_rules`
 --
@@ -2051,7 +2074,8 @@ CREATE TABLE `serialitems` (
        `serialid` int(11) NOT NULL,
        UNIQUE KEY `serialitemsidx` (`itemnumber`),
        KEY `serialitems_sfk_1` (`serialid`),
-       CONSTRAINT `serialitems_sfk_1` FOREIGN KEY (`serialid`) REFERENCES `serial` (`serialid`) ON DELETE CASCADE ON UPDATE CASCADE
+       CONSTRAINT `serialitems_sfk_1` FOREIGN KEY (`serialid`) REFERENCES `serial` (`serialid`) ON DELETE CASCADE ON UPDATE CASCADE,
+       CONSTRAINT serialitems_sfk_2 FOREIGN KEY (itemnumber) REFERENCES items (itemnumber) ON DELETE CASCADE ON UPDATE CASCADE
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
 DROP TABLE IF EXISTS `user_permissions`;
@@ -2130,7 +2154,7 @@ CREATE TABLE `message_transport_types` (
 DROP TABLE IF EXISTS `message_attributes`;
 CREATE TABLE `message_attributes` (
   `message_attribute_id` int(11) NOT NULL auto_increment,
-  `message_name` varchar(20) NOT NULL default '',
+  `message_name` varchar(40) NOT NULL default '',
   `takes_days` tinyint(1) NOT NULL default '0',
   PRIMARY KEY  (`message_attribute_id`),
   UNIQUE KEY `message_name` (`message_name`)
index d0db52a..3286be3 100644 (file)
@@ -185,7 +185,6 @@ INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OAI-PMH:Subset','itemtype=\'BOOK\'','Restrict answer to matching raws of the biblioitems table EXPERIMENTAL',NULL,'Free');
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OPACItemHolds','1','Allow OPAC users to place hold on specific items. If OFF, users can only request next available copy.','','YesNo');
 
-INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('GranularPermissions','0','Use detailed staff user permissions',NULL,'YesNo');
 INSERT INTO `systempreferences` (variable, value,options,type, explanation) VALUES ('AddPatronLists','categorycode','categorycode|category_type','Choice','Allow user to choose what list to pick up from when adding patrons');
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('ExtendedPatronAttributes','0','Use extended patron IDs and attributes',NULL,'YesNo');
 
index 5e787ee..acb4ddf 100644 (file)
@@ -5,6 +5,7 @@ INSERT INTO permissions (module_bit, code, description) VALUES
    ( 6, 'modify_holds_priority', 'Modify holds priority'),
    ( 9, 'edit_catalogue', 'Edit catalogue'),
    ( 9, 'fast_cataloging', 'Szybkie katalogowanie'),
+   ( 9, 'edit_items', 'Edit Items'),
    (11, 'vendors_manage', 'Zarządzanei dostawcami'),
    (11, 'contracts_manage', 'Zarządzanie kontraktami'),
    (11, 'period_manage', 'Manage periods'),
@@ -30,9 +31,20 @@ INSERT INTO permissions (module_bit, code, description) VALUES
    (13, 'delete_anonymize_patrons', 'Delete old borrowers and anonymize circulation history (deletes borrower reading history)'),
    (13, 'batch_upload_patron_images', 'Upload patron images in batch or one at a time'),
    (13, 'schedule_tasks', 'Schedule tasks to run'),
-   (13, 'batchmod', 'Perform batch modification of items'),
-   (13, 'batchdel', 'Perform batch deletion of items'),
+   (13, 'items_batchmod', 'Perform batch modification of items'),
+   (13, 'items_batchdel', 'Perform batch deletion of items'),
    (13, 'manage_csv_profiles', 'Manage CSV export profiles'),
+   (13, 'moderate_tags', 'Moderate patron tags'),
+   (16, 'execute_reports', 'Execute SQL reports'),
+   (13, 'rotating_collections', 'Manage rotating collections'),
+   (15, 'check_expiration', 'Check the expiration of a serial'),
+   (15, 'claim_serials', 'Claim missing serials'),
+   (15, 'create_subscription', 'Create a new subscription'),
+   (15, 'delete_subscription', 'Delete an existing subscription'),
+   (15, 'edit_subscription', 'Edit an existing subscription'),
+   (15, 'receive_serials', 'Serials receiving'),
+   (15, 'renew_subscription', 'Renew a subscription'),
+   (15, 'routing', 'Routing'),
    (16, 'execute_reports', 'Execute SQL reports'),
    (16, 'create_reports', 'Create SQL Reports')
 ;
index bc7d96c..6f4ed1b 100644 (file)
@@ -25,6 +25,21 @@ TRUNCATE permissions;
 INSERT INTO permissions (module_bit, code, description) VALUES
    ( 1, 'circulate_remaining_permissions', 'Remaining circulation permissions'),
    ( 1, 'override_renewals', 'Override blocked renewals'),
+   ( 6, 'place_holds', 'Place holds for patrons'),
+   ( 6, 'modify_holds_priority', 'Modify holds priority'),
+   ( 9, 'edit_catalogue', 'Edit catalog (Modify bibliographic/holdings data)'),
+   ( 9, 'fast_cataloging', 'Fast cataloging'),
+   ( 9, 'edit_items', 'Edit Items'),
+   (11, 'vendors_manage', 'Manage vendors'),
+   (11, 'contracts_manage', 'Manage contracts'),
+   (11, 'period_manage', 'Manage periods'),
+   (11, 'budget_manage', 'Manage budgets'),
+   (11, 'budget_modify', 'Modify budget (can''t create lines, but can modify existing ones)'),
+   (11, 'planning_manage', 'Manage budget plannings'),
+   (11, 'order_manage', 'Manage orders & basket'),
+   (11, 'group_manage', 'Manage orders & basketgroups'),
+   (11, 'order_receive', 'Manage orders & basket'),
+   (11, 'budget_add_del', 'Add and delete budgets (but cant modify budgets)'),
    (13, 'edit_news',                   'Написание новостей для электронного каталога и интерфейса библиотекарей'),
    (13, 'label_creator',               'Создание печатных наклеек и штрихкодов из каталога и с данными о пользователях'),
    (13, 'edit_calendar',               'Определение дней, когда библиотека закрыта'),
@@ -40,7 +55,11 @@ INSERT INTO permissions (module_bit, code, description) VALUES
    (13, 'delete_anonymize_patrons',    'Удаление пользователей с протерминованим периодом регистрации и анонимизация истории обращения (изъятие история чтения пользователей)'),
    (13, 'batch_upload_patron_images',  'Загрузка изображений посетителей партиями или всех сразу'),
    (13, 'schedule_tasks',              'Планирование задач к выполнению'),
+   (13, 'items_batchmod', 'Perform batch modification of items'),
+   (13, 'items_batchdel', 'Perform batch deletion of items'),
    (13, 'manage_csv_profiles',         'Manage CSV export profiles'),
+   (13, 'moderate_tags', 'Moderate patron tags'),
+   (13, 'rotating_collections', 'Manage rotating collections'),
    (15, 'check_expiration',            'Check the expiration of a serial'),
    (15, 'claim_serials',               'Claim missing serials'),
    (15, 'create_subscription',         'Create a new subscription'),
@@ -48,6 +67,8 @@ INSERT INTO permissions (module_bit, code, description) VALUES
    (15, 'edit_subscription',           'Edit an existing subscription'),
    (15, 'receive_serials',             'Serials receiving'),
    (15, 'renew_subscription',          'Renew a subscription'),
-   (15, 'routing',                     'Routing')
+   (15, 'routing',                     'Routing'),
+   (16, 'execute_reports', 'Execute SQL reports'),
+   (16, 'create_reports', 'Create SQL Reports')
 ;
 
index e3661b3..f3d4643 100644 (file)
@@ -213,7 +213,6 @@ INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OAI-PMH:Subset','itemtype=\'BOOK\'','Restrict answer to matching raws of the biblioitems table EXPERIMENTAL',NULL,'Free');
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OPACItemHolds','1','Allow OPAC users to place hold on specific items. If OFF, users can only request next available copy.','','YesNo');
 
-INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('GranularPermissions','0','Use detailed staff user permissions',NULL,'YesNo');
 INSERT INTO `systempreferences` (variable, value,options,type, explanation) VALUES ('AddPatronLists','categorycode','categorycode|category_type','Choice','Allow user to choose what list to pick up from when adding patrons');
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('ExtendedPatronAttributes','1','Use extended patron IDs and attributes',NULL,'YesNo');
 
index dc295d2..5d9ce1a 100644 (file)
@@ -13,8 +13,6 @@ UPDATE systempreferences SET explanation='Символ-разделитель п
 UPDATE systempreferences SET explanation='Список загруженных структур в веб-инсталляторе' WHERE variable='FrameworksLoaded';  
 -- Frameworks loaded through webinstaller
 
-UPDATE systempreferences SET explanation='Использование подразделения привилегий для работников' WHERE variable='GranularPermissions';        
--- Use detailed staff user permissions
 
 UPDATE systempreferences SET explanation='Если включено, то повышает безопасность между библиотеками. Используется, когда библиотеки используют одну инсталляцию Коха.' WHERE variable='IndependantBranches';       
 -- If ON, increases security between libraries
index 38251eb..f12ad37 100644 (file)
@@ -25,6 +25,21 @@ TRUNCATE permissions;
 INSERT INTO permissions (module_bit, code, description) VALUES
    ( 1, 'circulate_remaining_permissions', 'Remaining circulation permissions'),
    ( 1, 'override_renewals', 'Override blocked renewals'),
+   ( 6, 'place_holds', 'Place holds for patrons'),
+   ( 6, 'modify_holds_priority', 'Modify holds priority'),
+   ( 9, 'edit_catalogue', 'Edit catalog (Modify bibliographic/holdings data)'),
+   ( 9, 'fast_cataloging', 'Fast cataloging'),
+   ( 9, 'edit_items', 'Edit Items'),
+   (11, 'vendors_manage', 'Manage vendors'),
+   (11, 'contracts_manage', 'Manage contracts'),
+   (11, 'period_manage', 'Manage periods'),
+   (11, 'budget_manage', 'Manage budgets'),
+   (11, 'budget_modify', 'Modify budget (can''t create lines, but can modify existing ones)'),
+   (11, 'planning_manage', 'Manage budget plannings'),
+   (11, 'order_manage', 'Manage orders & basket'),
+   (11, 'group_manage', 'Manage orders & basketgroups'),
+   (11, 'order_receive', 'Manage orders & basket'),
+   (11, 'budget_add_del', 'Add and delete budgets (but cant modify budgets)'),
    (13, 'edit_news',                   'Написання новин для електронного каталогу та інтерфейсу бібліотекарів'),
    (13, 'label_creator',               'Створення друкованих наклейок і штрих-кодів з каталогу та з даними про користувачів'),
    (13, 'edit_calendar',               'Визначення днів, коли бібліотека закрита'),
@@ -40,7 +55,11 @@ INSERT INTO permissions (module_bit, code, description) VALUES
    (13, 'delete_anonymize_patrons',    'Вилучення користувачів з протермінованим періодом реєстрації та анонімізація історії обігу (вилучення історія читання користувачів)'),
    (13, 'batch_upload_patron_images',  'Завантаження зображень відвідувачів партіями чи усіх за раз'),
    (13, 'schedule_tasks',              'Планування задач до виконання'),
-   (13, 'manage_csv_profiles',         'Manage CSV export profiles'),
+   (13, 'items_batchmod', 'Perform batch modification of items'),
+   (13, 'items_batchdel', 'Perform batch deletion of items'),
+   (13, 'manage_csv_profiles', 'Manage CSV export profiles'),
+   (13, 'moderate_tags', 'Moderate patron tags'),
+   (13, 'rotating_collections', 'Manage rotating collections'),
    (15, 'check_expiration',            'Check the expiration of a serial'),
    (15, 'claim_serials',               'Claim missing serials'),
    (15, 'create_subscription',         'Create a new subscription'),
@@ -48,6 +67,8 @@ INSERT INTO permissions (module_bit, code, description) VALUES
    (15, 'edit_subscription',           'Edit an existing subscription'),
    (15, 'receive_serials',             'Serials receiving'),
    (15, 'renew_subscription',          'Renew a subscription'),
-   (15, 'routing',                     'Routing')
+   (15, 'routing',                     'Routing'),
+   (16, 'execute_reports', 'Execute SQL reports'),
+   (16, 'create_reports', 'Create SQL Reports')
 ;
 
index e45ad31..130b46b 100644 (file)
@@ -239,7 +239,6 @@ INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OAI-PMH:Subset','itemtype=\'BOOK\'','Restrict answer to matching raws of the biblioitems table EXPERIMENTAL',NULL,'Free');
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OPACItemHolds','1','Allow OPAC users to place hold on specific items. If OFF, users can only request next available copy.','','YesNo');
 
-INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('GranularPermissions','0','Use detailed staff user permissions',NULL,'YesNo');
 INSERT INTO `systempreferences` (variable, value,options,type, explanation) VALUES ('AddPatronLists','categorycode','categorycode|category_type','Choice','Allow user to choose what list to pick up from when adding patrons');
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('ExtendedPatronAttributes','1','Use extended patron IDs and attributes',NULL,'YesNo');
 
index 5a8bb0d..0c8c523 100644 (file)
@@ -13,9 +13,6 @@ UPDATE systempreferences SET explanation='Символ-роздільник по
 UPDATE systempreferences SET explanation='Перелік завантажених структур у веб-встановлювачі' WHERE variable='FrameworksLoaded';    
 -- Frameworks loaded through webinstaller
 
-UPDATE systempreferences SET explanation='Використання підрозділення привілеїв для працівників' WHERE variable='GranularPermissions';  
--- Use detailed staff user permissions
-
 UPDATE systempreferences SET explanation='Якщо ввімкнуто, то підвищує безпеку між бібліотеками. Використовується, коли бібліотеки використовують одну інсталяцію Коха.' WHERE variable='IndependantBranches';       
 -- If ON, increases security between libraries
 
index 1d90656..e9943a6 100755 (executable)
@@ -3624,6 +3624,37 @@ INSERT INTO permissions (module_bit, code, description) VALUES
     SetVersion ($DBversion);
 }
 
+$DBversion = "3.01.00.137";
+if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
+        $dbh->do("
+          INSERT INTO permissions (module_bit, code, description) VALUES
+          (15, 'check_expiration', 'Check the expiration of a serial'),
+          (15, 'claim_serials', 'Claim missing serials'),
+          (15, 'create_subscription', 'Create a new subscription'),
+          (15, 'delete_subscription', 'Delete an existing subscription'),
+          (15, 'edit_subscription', 'Edit an existing subscription'),
+          (15, 'receive_serials', 'Serials receiving'),
+          (15, 'renew_subscription', 'Renew a subscription'),
+          (15, 'routing', 'Routing');
+                 ");
+    print "Upgrade to $DBversion done (adding granular permissions for serials)";
+    SetVersion ($DBversion);
+}
+
+$DBversion = "3.01.00.138";
+if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
+    $dbh->do("DELETE FROM systempreferences WHERE variable = 'GranularPermissions'");
+    print "Upgrade to $DBversion done (bug 4896: removing GranularPermissions syspref; use of granular permissions is now the default)";
+    SetVersion ($DBversion);
+}
+
+$DBversion = '3.01.00.139';
+if (C4::Context->preference('Version') < TransformToNum($DBversion)){
+    $dbh->do("ALTER TABLE message_attributes CHANGE message_name message_name varchar(40);");
+    print "Upgrade to $DBversion done (bug 3682: change message_name from varchar(20) to varchar(40))\n";
+    SetVersion ($DBversion);
+}
+
 
 =item DropAllForeignKeys($table)
 
index 0377cca..f763ad2 100644 (file)
@@ -132,3 +132,4 @@ a.tagnum {
 .linktools a {margin:0 2px;padding:2px;background-color:#FFF;text-align:center; }
 .linktools a:first-child { border-bottom: 1px solid #DDD; }
 .linktools a:hover { background-color: #FFC; }
+.subfield_controls { margin : 0 .5em; }
\ No newline at end of file
diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/biblio-default-view.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/biblio-default-view.inc
new file mode 100644 (file)
index 0000000..deb5dd3
--- /dev/null
@@ -0,0 +1,9 @@
+<!-- TMPL_IF name="BiblioDefaultViewmarc" -->
+       <a class="title" href="/cgi-bin/koha/catalogue/MARCdetail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" ESCAPE="URL" -->">
+<!-- TMPL_ELSIF NAME="BiblioDefaultViewlabeled_marc" -->
+       <a class="title" href="/cgi-bin/koha/catalogue/labeledMARCdetail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" ESCAPE="URL" -->">
+<!-- TMPL_ELSIF NAME="BiblioDefaultViewisbd" -->
+       <a class="title" href="/cgi-bin/koha/catalogue/ISBDdetail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" ESCAPE="URL" -->">
+<!-- TMPL_ELSE -->
+       <a class="title" href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" ESCAPE="URL" -->">
+<!-- /TMPL_IF -->
\ No newline at end of file
index 9d41cab..8c16e3a 100644 (file)
     <li><a href="/cgi-bin/koha/cataloguing/addbooks.pl">Cataloging</a><ul>
         <li><a href="/cgi-bin/koha/cataloguing/addbiblio.pl">Add MARC Record</a></li>
         <li><a href="/cgi-bin/koha/authorities/authorities-home.pl">Authorities</a></li>
+    <!-- /TMPL_IF -->
+    <!-- TMPL_IF NAME="CAN_user_serials" -->
         <li><a href="/cgi-bin/koha/serials/serials-home.pl">Serials</a></li>
+    <!-- /TMPL_IF -->
+    <!-- TMPL_IF NAME="CAN_user_editcatalogue" -->
     </ul></li>
     
     <li><a href="/cgi-bin/koha/acqui/acqui-home.pl">Acquisitions</a></li>
index 6f21f93..88e32e3 100644 (file)
@@ -1,12 +1,21 @@
 <!-- TMPL_IF NAME="subscriptionid" -->
 <ul>
 <li><a href="serials-collection.pl?subscriptionid=<!-- TMPL_VAR name="subscriptionid" -->">Serial Collection</a></li>
-       <!-- TMPL_IF NAME="routing" --><li><a href="routing.pl?subscriptionid=<!-- TMPL_VAR NAME="subscriptionid" -->">Edit Routing List</a></li><!-- TMPL_ELSE -->
-       <li><a href="routing.pl?subscriptionid=<!-- TMPL_VAR NAME="subscriptionid" -->&amp;op=new">Create Routing List</a></li><!-- /TMPL_IF -->
+       <!-- TMPL_IF NAME="CAN_user_serials_routing" -->
+           <!-- TMPL_IF NAME="routing" -->
+               <li><a href="routing.pl?subscriptionid=<!-- TMPL_VAR NAME="subscriptionid" -->">Edit Routing List</a></li>
+           <!-- TMPL_ELSE -->
+               <li><a href="routing.pl?subscriptionid=<!-- TMPL_VAR NAME="subscriptionid" -->&amp;op=new">Create Routing List</a></li>
+           <!-- /TMPL_IF -->
+       <!-- /TMPL_IF -->
 </ul>
 <!-- /TMPL_IF -->
 
 <ul>
+    <!-- TMPL_IF NAME="CAN_user_serials_claim_serials" -->
        <li><a href="/cgi-bin/koha/serials/claims.pl">Claims</a></li>
+    <!-- /TMPL_IF -->
+    <!-- TMPL_IF NAME="CAN_user_serials_check_expiration" -->
        <li><a href="/cgi-bin/koha/serials/checkexpiration.pl">Check Expiration</a></li>
-</ul>
\ No newline at end of file
+    <!-- /TMPL_IF -->
+</ul>
index b7b773c..6bed3a0 100644 (file)
        
     <!-- TMPL_IF NAME="subscriptionid" -->
            var editmenu = [
-               { text: _("Edit Subscription"),  <!-- TMPL_IF NAME="cannotedit" -->disabled: true, <!-- /TMPL_IF --> url: "/cgi-bin/koha/serials/subscription-add.pl?op=mod&amp;subscriptionid=<!-- TMPL_VAR name="subscriptionid" -->" },
-               { text: _("Edit as New (Duplicate)"), <!-- TMPL_IF NAME="cannotedit" -->disabled: true, <!-- /TMPL_IF --> url: "/cgi-bin/koha/serials/subscription-add.pl?op=dup&amp;subscriptionid=<!-- TMPL_VAR name="subscriptionid" -->" },
+               <!-- TMPL_IF NAME="CAN_user_serials_edit_subscription" -->
+                   { text: _("Edit Subscription"),  <!-- TMPL_IF NAME="cannotedit" -->disabled: true, <!-- /TMPL_IF --> url: "/cgi-bin/koha/serials/subscription-add.pl?op=mod&amp;subscriptionid=<!-- TMPL_VAR name="subscriptionid" -->" },
+               <!-- /TMPL_IF -->
+               <!-- TMPL_IF NAME="CAN_user_serials_create_subscription" -->
+                   { text: _("Edit as New (Duplicate)"), <!-- TMPL_IF NAME="cannotedit" -->disabled: true, <!-- /TMPL_IF --> url: "/cgi-bin/koha/serials/subscription-add.pl?op=dup&amp;subscriptionid=<!-- TMPL_VAR name="subscriptionid" -->" },
+               <!-- /TMPL_IF -->
+               <!-- TMPL_IF NAME="CAN_user_serials_delete_subscription" -->
                        { text: _("Delete Subscription"), <!-- TMPL_IF NAME="cannotedit" -->disabled: true, <!-- /TMPL_IF --> onclick: {fn: confirm_deletion }}
+               <!-- /TMPL_IF -->
            ];
         <!-- /TMPL_IF -->
            new YAHOO.widget.Button("newsubscription");
@@ -50,21 +56,39 @@ onclick: {fn:function(){popup(<!--TMPL_VAR Name="subscriptionid"-->)}}
        //]]>
        </script>
 <ul class="toolbar">
-    <!-- TMPL_IF NAME="biblionumber_for_new_subscription" -->
-           <li><a id="newsubscription" href="/cgi-bin/koha/serials/subscription-add.pl?biblionumber_for_new_subscription=<!-- TMPL_VAR NAME="biblionumber_for_new_subscription" -->">New Subscription</a></li>
-    <!-- TMPL_ELSE -->
-           <li><a id="newsubscription" href="/cgi-bin/koha/serials/subscription-add.pl">New Subscription</a></li>
+    <!-- TMPL_IF NAME="CAN_user_serials_create_subscription" -->
+       <!-- TMPL_IF NAME="biblionumber_for_new_subscription" -->
+               <li><a id="newsubscription" href="/cgi-bin/koha/serials/subscription-add.pl?biblionumber_for_new_subscription=<!-- TMPL_VAR NAME="biblionumber_for_new_subscription" -->">New Subscription</a></li>
+       <!-- TMPL_ELSE -->
+               <li><a id="newsubscription" href="/cgi-bin/koha/serials/subscription-add.pl">New Subscription</a></li>
+       <!-- /TMPL_IF -->
     <!-- /TMPL_IF -->
-    <!-- TMPL_IF NAME="subscriptionid" -->
-        <!-- TMPL_UNLESS name="cannotedit" -->
-            <li id="editmenuc"><a id="edit" href="/cgi-bin/koha/serials/subscription-add.pl?op=mod&amp;subscriptionid=<!-- TMPL_VAR name="subscriptionid" -->">Edit</a></li>
-        <!-- /TMPL_UNLESS -->
-        <li><a id="duplicate" href="/cgi-bin/koha/serials/subscription-add.pl?op=dup&amp;subscriptionid=<!-- TMPL_VAR name="subscriptionid" -->">Duplicate </a></li>
-        <!-- TMPL_UNLESS name="cannotedit" -->
-            <li id="renewc"><a id="renew" href="#" onclick="popup(<!--TMPL_VAR Name="subscriptionid"-->)">Renew </a></li>
-            <li><a id="receive" href="/cgi-bin/koha/serials/serials-edit.pl?subscriptionid=<!-- TMPL_VAR name="subscriptionid" -->&amp;serstatus=1,3">Receive</a></li>
-            <li><a id="delete" href="javascript:confirm_deletion()">Delete</a></li>
-        <!-- /TMPL_UNLESS -->
+
+    <!-- TMPL_IF EXPR="CAN_user_serials_edit_subscription || CAN_user_serials_create_subscription || CAN_user_serials_delete_subscription" -->
+       <!-- TMPL_IF NAME="subscriptionid" -->
+
+           <!-- TMPL_IF expr="CAN_user_serials_edit_subscription || CAN_user_serials_create_subscription || CAN_user_serials_delete_subscription" -->
+               <!-- TMPL_UNLESS name="cannotedit" -->
+                   <li id="editmenuc"><a id="edit" href="/cgi-bin/koha/serials/subscription-add.pl?op=mod&amp;subscriptionid=<!-- TMPL_VAR name="subscriptionid" -->">Edit</a></li>
+               <!-- /TMPL_UNLESS -->
+           <!-- /TMPL_IF -->
+
+           <!-- TMPL_IF name="CAN_user_serials_create_subscription" -->
+               <li><a id="duplicate" href="/cgi-bin/koha/serials/subscription-add.pl?op=dup&amp;subscriptionid=<!-- TMPL_VAR name="subscriptionid" -->">Duplicate </a></li>
+           <!-- /TMPL_IF -->
+
+           <!-- TMPL_UNLESS name="cannotedit" -->
+               <!-- TMPL_IF name="CAN_user_serials_renew_subscription" -->
+                   <li id="renewc"><a id="renew" href="#" onclick="popup(<!--TMPL_VAR Name="subscriptionid"-->)">Renew </a></li>
+               <!-- /TMPL_IF -->
+               <!-- TMPL_IF name="CAN_user_serials_receive_serials" -->
+                   <li><a id="receive" href="/cgi-bin/koha/serials/serials-edit.pl?subscriptionid=<!-- TMPL_VAR name="subscriptionid" -->&amp;serstatus=1,3">Receive</a></li>
+               <!-- /TMPL_IF -->
+               <!-- TMPL_IF name="CAN_user_serials_delete_subscription" -->
+                   <li><a id="delete" href="javascript:confirm_deletion()">Delete</a></li>
+               <!-- /TMPL_IF -->
+           <!-- /TMPL_UNLESS -->
+       <!-- /TMPL_IF -->
     <!-- /TMPL_IF -->
 </ul>
 </div>
index 3c48fb8..3021681 100644 (file)
@@ -94,7 +94,7 @@
                     <li><a href="basketheader.pl?basketno=<!-- TMPL_VAR NAME="basketno" -->&amp;op=add_form" class="button" id="basketheadbutton">Edit basket header information</a></li>
                     <li><a href="javascript:confirm_deletion();" class="button" id="delbasketbutton">Delete this basket</a></li>
                     <!-- TMPL_IF name="unclosable" -->
-                        <li><button onclick="confirm_close()" class="yui-button-disabled" id="closebutton" type="push" disabled="true" title="You can not close this basket" >Can not close basket</a></li>
+                        <li><button onclick="confirm_close()" class="yui-button-disabled" id="closebutton" type="button" disabled="disabled" title="You can not close this basket" />Can not close basket</li>
                     <!-- TMPL_ELSIF name="uncertainprices" -->
                         <li><a href="/cgi-bin/koha/acqui/uncertainprice.pl?booksellerid=<!-- TMPL_VAR name="booksellerid" -->&amp;owner=1" class="button" id="uncertpricesbutton">Uncertain prices</a></li>
                     <!-- TMPL_ELSE -->
                     <p>Contract name: <a href="../admin/aqcontract.pl?op=add_form&amp;contractnumber=<!-- TMPL_VAR NAME="basketcontractno" -->&amp;booksellerid=<!-- TMPL_VAR NAME="booksellerid" -->"><!-- TMPL_VAR NAME="basketcontractname" --></a></p>
                 <!-- /TMPL_IF -->
                 <!-- TMPL_IF NAME="authorisedbyname" --><p>Managed by:  <!-- TMPL_VAR NAME="authorisedbyname" --></p><!-- /TMPL_IF -->
-                <!-- TMPL_IF NAME="creationdate" --><p>Open on:  <!-- TMPL_VAR NAME="creationdate" --></p><!-- /TMPL_IF -->
+                <!-- TMPL_IF NAME="creationdate" --><p>Opened on:  <!-- TMPL_VAR NAME="creationdate" --></p><!-- /TMPL_IF -->
                 <!-- TMPL_IF name="closedate" -->
                 <form action="/cgi-bin/koha/acqui/basketgroup.pl" method="post">
                 <p>Closed on:  <!-- TMPL_VAR name="closedate" --></p>
                         <input type="submit" value="Change basket group" />
                     </p>
                 </form>
+                <!-- TMPL_ELSE -->
+                    <a href="/cgi-bin/koha/acqui/basketgroup.pl?op=add&booksellerid=<!-- TMPL_VAR name="basketgroups" -->&basketgroupid=<!-- TMPL_VAR name="id" -->"><!-- TMPL_VAR name="name" --></a>
                 <!-- /TMPL_IF -->
                 <!-- /TMPL_IF -->
             </div>
index 491f15d..2527cc6 100644 (file)
@@ -59,7 +59,7 @@
             <tr>
         <!-- /TMPL_UNLESS -->
                 <td>   <!-- TMPL_IF name="active" -->
-                        <a href="basketheader.pl?booksellerid=<!-- TMPL_VAR name="supplierid" -->&op=add_form">Add basket</a>
+                        <a href="basketheader.pl?booksellerid=<!-- TMPL_VAR name="supplierid" -->&amp;op=add_form">Add basket</a>
                     <!-- TMPL_ELSE -->
                         Inactive
                     <!-- /TMPL_IF -->
index e07b303..83b8631 100644 (file)
@@ -145,7 +145,9 @@ if (f.company.value == "") {
                 <input type="hidden"  name="invoice_gst" value="0" />
             <!-- /TMPL_UNLESS -->
         </fieldset>
-        <fieldset class="action"><input type="button" value="Save" onclick="check(this.form);" /> <a class="cancel" href="/cgi-bin/koha/acqui/supplier.pl?supplierid=<!-- TMPL_VAR NAME="id" -->">Cancel</a></fieldset>
+        <fieldset class="action"><input type="button" value="Save" onclick="check(this.form);" /> <!--TMPL_IF Name="id"-->
+        <a class="cancel" href="/cgi-bin/koha/acqui/supplier.pl?supplierid=<!--TMPL_VAR Name="id"-->"><!--TMPL_ELSE--><a class="cancel" href="/cgi-bin/koha/acqui/acqui-home.pl">
+        <!--/TMPL_IF-->Cancel</a></fieldset>
         </div>
     </form>
 <!--TMPL_ELSE-->
index e607f77..e0644a6 100644 (file)
         // var actTotal ="";
 
         if (!(isNotNull(f.budget_code,1))) {
-            _alertString += _("- Budget code cannot be blank\n");
+            _alertString += _("- Budget code cannot be blank") + "\n";
         }
 
         if (!(isNotNull(f.budget_name,1))) {
-            _alertString += _("- Budget name cannot be blank\n");
+            _alertString += _("- Budget name cannot be blank") + "\n";
         }
 
         if (!(isNotNull(f.budget_amount,1))) {
-            _alertString += _("- Budget amount cannot be blank\n");
+            _alertString += _("- Budget amount cannot be blank") + "\n";
         }
 
         var budgetId;
@@ -52,7 +52,7 @@
             if   (budgetId  > 0)  {  ; //its a mod ...
                 // if parent eq curent-budget, fail...
                 if ( newBudgetParent  ==  budgetId     ) {
-                        _alertString += _("- Budget parent is current budget\n");
+                        _alertString += _("- Budget parent is current budget") + "\n";
                 }
 
                 else if (newBudgetParent) {
@@ -74,8 +74,8 @@
         if (_alertString.length==0) {
             document.Aform.submit();
         } else {
-            alertString2 = _("Form not submitted because of the following problem(s)\n");
-            alertString2 += "------------------------------------------------------------------------------------\n\n";
+            alertString2 = _("Form not submitted because of the following problem(s)");
+            alertString2 += "\n------------------------------------------------------------------------------------\n\n";
             alertString2 += _alertString;
             alert(alertString2);
         }
     <select name="budget_branchcode" id="budget_branchcode">
     <option value=""></option>
     <!-- TMPL_LOOP name="branchloop_select" -->
-        <!-- TMPL_IF name="selected" --> <option value="<!-- TMPL_VAR name="value" -->" > <!--TMPL_ELSE--> <option value="<!-- TMPL_VAR name="value" -->" selected="selected"> <!-- /TMPL_IF --> <!-- TMPL_VAR name="branchname" --></option>
+        <!-- TMPL_UNLESS name="selected" --> <option value="<!-- TMPL_VAR name="value" -->" > <!--TMPL_ELSE--> <option value="<!-- TMPL_VAR name="value" -->" selected="selected"> <!-- /TMPL_UNLESS --> <!-- TMPL_VAR NAME="value" -->-<!-- TMPL_VAR name="branchname" --></option>
     <!-- /TMPL_LOOP -->
     </select>
     </li>
index 95e8c6b..43ffa38 100644 (file)
@@ -1,5 +1,5 @@
 <!-- TMPL_INCLUDE NAME="doc-head-open.inc" -->
-<title>Koha &rsaquo; Administration &rsaquo; Contracts &rsaquo;
+<title>Koha &rsaquo; Acquisitions &rsaquo; Contracts &rsaquo;
 <!-- TMPL_IF NAME="add_form" -->
     <!-- TMPL_IF NAME="contractnumber" -->Modify contract '<!-- TMPL_VAR NAME="contractname" -->'
 <!-- TMPL_ELSE -->New contract<!-- /TMPL_IF -->
 // to check if the data are correctly entered.
 function Check(ff) {
     var ok=0;
-    var _alertString=_("Form not submitted because of the following problem(s)\n");
-    _alertString +="-------------------------------------------------------------------\n\n";
+    var _alertString=_("Form not submitted because of the following problem(s)");
+    _alertString +="\n-------------------------------------------------------------------\n\n";
     if (!(isNotNull(ff.contractname,0))){
         ok=1;
-        _alertString += _("- Name missing\n");
+        _alertString += _("- Name missing") + "\n";
     }
     var startDate = Date_from_syspref($("#contractstartdate").val());
     var endDate   = Date_from_syspref($("#contractenddate").val());
     if (!parseInt(startDate.getTime())) {
         ok=1;
-        _alertString += _("- Start date missing or invalid.\n");
+        _alertString += _("- Start date missing or invalid.") + "\n";
     }
     if (!parseInt(endDate.getTime())) {
         ok=1;
-        _alertString += _("- End date missing or invalid.\n");
+        _alertString += _("- End date missing or invalid.") + "\n";
     }
     
     if (startDate > endDate) {
         ok=1;
-        _alertString += _("Wrong date! start date cannot be after end date.\n");
+        _alertString += _("Wrong date! start date cannot be after end date.") + "\n";
     }
     if (endDate < (new Date)) {
         ok=1;
-        _alertString += _("End date before today, Invalid end date!\n");
+        _alertString += _("End date before today, Invalid end date!") + "\n";
     }
     if (ok) { // if there is a problem
         alert(_alertString);
@@ -57,7 +57,7 @@ function Check(ff) {
 <div id="breadcrumbs">
     <a href="/cgi-bin/koha/mainpage.pl">Home</a>
     &rsaquo;
-    <a href="/cgi-bin/koha/admin/admin-home.pl">Administration</a>
+    <a href="/cgi-bin/koha/acqui/acqui-home.pl">Acquisitions</a>
     &rsaquo;
     <a href="/cgi-bin/koha/acqui/supplier.pl?supplierid=<!--TMPL_VAR name="booksellerid" -->"><!-- TMPL_VAR name="booksellername" --></a>
     &rsaquo;
@@ -82,10 +82,9 @@ function Check(ff) {
     <!-- TMPL_IF NAME="else" -->Contracts<!-- /TMPL_IF -->
 </div>
 
-<div id="doc3" class="yui-t2">
+<div id="doc" class="yui-t7">
     <div id="bd">
         <div id="yui-main">
-            <div class="yui-b">
                 <!-- TMPL_IF NAME="add_form" -->
                     <form name="Aform" action="<!-- TMPL_VAR NAME="script_name" -->" method="post">
                         <input type="hidden" name="op" value="add_validate" />
@@ -141,7 +140,7 @@ function Check(ff) {
                             </ol>
                         </fieldset>
                         <fieldset class="action">
-                            <input type="button" value="Save" onclick="Check(this.form);" />
+                            <input type="button" value="Save" onclick="Check(this.form);" /> <a class="cancel" href="/cgi-bin/koha/admin/aqcontract.pl?booksellerid=<!-- TMPL_VAR NAME="booksellerid" -->&amp;contractnumber=<!-- TMPL_VAR NAME="contractnumber" -->">Cancel</a>
                         </fieldset>
                     </form>
             <!-- /TMPL_IF -->
@@ -221,12 +220,10 @@ function Check(ff) {
                         </tr>
                     <!-- /TMPL_LOOP -->
                 </table>
+                <!-- TMPL_ELSE -->
+                <div class="dialog message">There are no contracts with this vendor.</div>
                 <!-- /TMPL_IF -->
             <!-- /TMPL_IF -->
         </div>
-    </div>
-    <div class="yui-b">
-        <!-- TMPL_INCLUDE NAME="admin-menu.inc" -->
-    </div>
 </div>
 <!-- TMPL_INCLUDE NAME="intranet-bottom.inc" -->
index 97e4aed..93a3d6a 100644 (file)
@@ -1,20 +1,7 @@
 <!-- TMPL_INCLUDE NAME="doc-head-open.inc" -->
-<title>
-Budget &amp; fund planning
-</title>
+<title>Koha &rsaquo; Administration &rsaquo; Budgets &rsaquo; Budget planning</title>
 <!-- TMPL_INCLUDE NAME="doc-head-close.inc" -->
 <!-- TMPL_INCLUDE NAME="calendar.inc" -->
-<link href="<!-- TMPL_VAR NAME="yuipath" -->/reset/reset.css" rel="stylesheet" type="text/css" />
-<link href="<!-- TMPL_VAR NAME="yuipath" -->/fonts/fonts.css" rel="stylesheet" type="text/css" />
-<link href="<!-- TMPL_VAR NAME="yuipath" -->/menu/assets/menu.css" rel="stylesheet" type="text/css" />
-<link href="<!-- TMPL_VAR NAME="yuipath" -->/container/assets/skins/sam/container.css"  rel="stylesheet" type="text/css" />
-
-<script  src="<!-- TMPL_VAR NAME="yuipath" -->/yahoo/yahoo.js" type="text/javascript"></script>
-<script  src="<!-- TMPL_VAR NAME="yuipath" -->/event/event.js" type="text/javascript"></script>
-<script  src="<!-- TMPL_VAR NAME="yuipath" -->/dom/dom.js" type="text/javascript"></script>
-<script  src="<!-- TMPL_VAR NAME="yuipath" -->/menu/menu.js" type="text/javascript"></script>
-<script  src="<!-- TMPL_VAR NAME="yuipath" -->/yahoo-dom-event/yahoo-dom-event.js"  type="text/javascript"></script>
-
 <script type="text/javascript" src="<!-- TMPL_VAR NAME='themelang' -->/js/acq.js"></script>
 <script type="text/javascript">
 //<![CDATA[
index 069ea9d..2dbd086 100644 (file)
@@ -70,13 +70,6 @@ Administration:
                   mysql: in the MySQL database.
                   Pg: in the PostgreSQL database (not supported).
                   tmp: as temporary files.
-        -
-            - Control staff access to pages within Koha based on
-            - pref: GranularPermissions
-              default: 0
-              choices:
-                  yes: the specific page.
-                  no: the general module (such as administration or circulation).
         -
             - pref: IndependantBranches
               default: 0
@@ -101,4 +94,4 @@ Administration:
             - of CAS when logging out of Koha.
         -
             - The CAS Authentication Server can be found at
-            - pref: casServerUrl           
\ No newline at end of file
+            - pref: casServerUrl           
index c69a34d..ab92915 100644 (file)
@@ -140,11 +140,12 @@ Circulation:
               class: date
             - .
         -
+            - Calculate the due date using 
             - pref: useDaysMode
               choices:
-                  Days: Include
-                  Calendar: "Don't include"
-            - days when the library in closed when calculating due dates.
+                  Days: circulation rules only.
+                  Calendar: the calendar to skip all days the library is closed.
+                  Datedue: the calendar to push the due date to the next open day
         -
             - When renewing checkouts, base the new due date on
             - pref: RenewalPeriodBase
index 77da550..e919dd1 100644 (file)
@@ -244,8 +244,8 @@ OPAC:
             - pref: singleBranchMode
               default: 0
               choices:
-                  yes: Allow
-                  no: "Don't allow"
+                  yes: "Don't allow"
+                  no: Allow
             - patrons to select their branch on the OPAC.
         -
             - pref: SearchMyLibraryFirst
index 72b132f..cadea08 100644 (file)
@@ -91,14 +91,14 @@ function AreMandatoriesNotOk(){
        
        if(isempty){
                flag = 1;
-               StrAlert += "\t* Field " + arr[0] + " is mandatory, at least one of its subfields must be filled\n";
+                       StrAlert += "\t* Field " + arr[0] + _(" is mandatory, at least one of its subfields must be filled") + "\n";
        }
        
     }
     
     
     if(StrAlert){
-        return _("Can't save this record because the following field aren't filled :\n\n") + StrAlert;
+        return _("Can't save this record because the following field aren't filled :") + "\n\n" + StrAlert;
     }
     return false;
 }
@@ -708,10 +708,10 @@ function searchauthority() {
                     <!-- TMPL_VAR NAME="marc_value" -->
                     
                     <!-- TMPL_IF NAME="repeatable" -->
-                        <span class="buttonPlus" onclick="CloneSubfield('subfield<!-- TMPL_VAR NAME='tag' --><!-- TMPL_VAR NAME='subfield' -->')">+</span>
+                        <a href="#" onclick="CloneSubfield('subfield<!-- TMPL_VAR NAME='tag' --><!-- TMPL_VAR NAME='subfield' -->'); return false;"><img src="/intranet-tmpl/prog/img/clone-subfield.png" alt="Clone" title="Clone this subfield" /></a>
                     <!-- /TMPL_IF -->
                     <!-- TMPL_UNLESS NAME="mandatory" -->
-                        <span class="buttonMinus" onclick="UnCloneField('subfield<!-- TMPL_VAR NAME='tag' --><!-- TMPL_VAR NAME='subfield' --><!-- TMPL_VAR name="random" -->')">&#8722;</span>
+                        <a href="#" onclick="UnCloneField('subfield<!-- TMPL_VAR NAME='tag' --><!-- TMPL_VAR NAME='subfield' --><!-- TMPL_VAR name="random" -->'); return false;"><img src="/intranet-tmpl/prog/img/delete-subfield.png" alt="Delete" title="Delete this subfield" /></a>
                     <!-- /TMPL_UNLESS -->
                     
                 </div>
index 7bd4959..1861028 100644 (file)
@@ -53,10 +53,28 @@ function verify_images() {
     <div class="yui-b">
 
 <!-- TMPL_INCLUDE NAME="cat-toolbar.inc" -->
-    <!-- TMPL_IF NAME="AmazonEnabled" --><div class="yui-gb"><!-- TMPL_ELSE --><div class="yui-g"><!-- /TMPL_IF -->
-    <div id="catalogue_detail_biblio" class="yui-u first">
+    <!-- TMPL_IF NAME="AmazonEnabled" -->
+        <!-- TMPL_IF NAME="XSLTDetailsDisplay" -->
+            <div class="yui-gc">
+            <div id="catalogue_detail_biblio" class="yui-u first">
+        <!-- TMPL_ELSE -->
+            <div class="yui-gb">
+            <div id="catalogue_detail_biblio" class="yui-u first">
+        <!-- /TMPL_IF -->
+    <!-- TMPL_ELSE -->
+        <!-- TMPL_IF NAME="XSLTDetailsDisplay" -->
+            <div class="yui-g">
+            <div id="catalogue_detail_biblio">
+        <!-- TMPL_ELSE -->
+            <div class="yui-g">
+            <div id="catalogue_detail_biblio" class="yui-u first">
+        <!-- /TMPL_IF -->
+    <!-- /TMPL_IF -->
+
         <!-- TMPL_IF NAME="XSLTDetailsDisplay" -->
         <!-- TMPL_VAR NAME="XSLTBloc" -->
+        <!-- TMPL_IF NAME="AmazonEnabled" --><!-- TMPL_IF NAME="AmazonCoverImages" --></div><div class="yui-u" id="bookcoverimg">
+        <a href="http://www.amazon<!-- TMPL_VAR NAME="AmazonTld" -->/gp/reader/<!-- TMPL_VAR NAME="normalized_isbn" -->/ref=sib_dp_pt/002-7879865-0184864#reader-link"><img border="0" src="http://images.amazon.com/images/P/<!-- TMPL_VAR NAME="normalized_isbn" -->.01.MZZZZZZZ.jpg" alt="" /></a><!-- /TMPL_IF --><!-- /TMPL_IF -->
     <!-- TMPL_ELSE -->
 
     <h3><!-- TMPL_VAR NAME="title" escape="html"--></h3>
index 8ad3609..916ee31 100644 (file)
@@ -394,15 +394,7 @@ function GetZ3950Terms(){
                             </td>
                             <td>
                                 <p><!-- TMPL_VAR NAME="result_number" -->.
-                                    <!-- TMPL_IF name="BiblioDefaultViewmarc" -->
-                                        <a class="title" href="/cgi-bin/koha/catalogue/MARCdetail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" ESCAPE="URL" -->">
-                                    <!-- TMPL_ELSIF NAME="BiblioDefaultViewlabeled_marc" -->
-                                            <a class="title" href="/cgi-bin/koha/catalogue/labeledMARCdetail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" ESCAPE="URL" -->">
-                                    <!-- TMPL_ELSIF NAME="BiblioDefaultViewisbd" -->
-                                            <a class="title" href="/cgi-bin/koha/catalogue/ISBDdetail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" ESCAPE="URL" -->">
-                                    <!-- TMPL_ELSE -->
-                                            <a class="title" href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" ESCAPE="URL" -->">
-                                    <!-- /TMPL_IF -->
+                                <!-- TMPL_INCLUDE NAME="biblio-default-view.inc" -->
                                             <b><!-- TMPL_IF NAME="title" --><!-- TMPL_VAR NAME="title" ESCAPE="html" --><!-- TMPL_ELSE -->No title<!-- /TMPL_IF --></b>
                                             </a>
                                         <!-- TMPL_LOOP NAME="subtitle" --> , <!-- TMPL_VAR NAME="subfield" --> <!-- /TMPL_LOOP -->
@@ -459,7 +451,7 @@ function GetZ3950Terms(){
 
                                 <!-- /TMPL_IF -->
                                   <!-- TMPL_IF NAME="norequests" -->
-                                        No holds allowed
+                                        <span class="noholdstext">No holds allowed</span>
                                     <!-- TMPL_ELSE -->
                                         <a class="reserve" id="reserve_<!-- TMPL_VAR NAME="biblionumber" -->" href="/cgi-bin/koha/reserve/request.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->">Holds</a>
                                     <!-- /TMPL_IF -->
index 3e41f04..8c5d499 100644 (file)
@@ -810,8 +810,8 @@ function unHideSubfield(index,labelindex) { // FIXME :: is it used ?
                 <!-- TMPL_VAR NAME="marc_value" -->
                 
                 <!-- TMPL_IF NAME="repeatable" -->
-                    <span class="buttonPlus" onclick="CloneSubfield('subfield<!-- TMPL_VAR NAME='tag' --><!-- TMPL_VAR NAME='subfield' --><!-- TMPL_VAR name="random" -->')">+</span>
-                    <span class="buttonMinus" onclick="UnCloneField('subfield<!-- TMPL_VAR NAME='tag' --><!-- TMPL_VAR NAME='subfield' --><!-- TMPL_VAR name="random" -->')">&#8722;</span>
+                    <span class="subfield_controls"><a href="#" onclick="CloneSubfield('subfield<!-- TMPL_VAR NAME='tag' --><!-- TMPL_VAR NAME='subfield' --><!-- TMPL_VAR name="random" -->'); return false;"><img src="/intranet-tmpl/prog/img/clone-subfield.png" alt="Clone" title="Clone this subfield" /></a>
+                                        <a href="#" onclick="UnCloneField('subfield<!-- TMPL_VAR NAME='tag' --><!-- TMPL_VAR NAME='subfield' --><!-- TMPL_VAR name="random" -->'); return false;"><img src="/intranet-tmpl/prog/img/delete-subfield.png" alt="Delete" title="Delete this subfield" /></a></span>
                 <!-- /TMPL_IF -->
 
                 
index 1898c9d..6230faa 100644 (file)
@@ -3,6 +3,7 @@
 <!-- TMPL_INCLUDE NAME="doc-head-close.inc" -->
 <style type="text/css">
 div.record ul, div.record li { float:none; display:block; }
+div#result { margin-top: 1em; }
 /* We use this style "against" the li ui-tabs-nav style automatically applied */
 </style>
 <script type="text/javascript">
@@ -17,7 +18,7 @@ div.record ul, div.record li { float:none; display:block; }
 
 $(document).ready(function(){
     // Creating tabs
-    $("#tabs").tabs();
+    $("#tabs > ul").tabs();
 
     // Getting marc structure via ajax
     tagslib = [];
@@ -165,20 +166,20 @@ $(document).ready(function(){
 </head>
 <body>
 <!-- TMPL_INCLUDE NAME="header.inc" -->
+<!-- TMPL_INCLUDE NAME="cataloging-search.inc" -->
 <div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <a href="/cgi-bin/koha/cataloguing/addbooks.pl">Cataloging</a>  &rsaquo; <!-- TMPL_IF NAME="biblionumber" -->Editing <em><!-- TMPL_VAR NAME="title" escape="html" --></em> (Record Number <!-- TMPL_VAR name="biblionumber" -->)<!-- TMPL_ELSE -->Add MARC Record<!-- /TMPL_IF --></div>
 
 <div id="doc" class="yui-t7">
 
 <div id="bd">
         <div id="yui-main">
-        <div class="yui-g">
 
 
 <h1>Merging records</h1>
 <!-- TMPL_IF name="result" -->
     <!-- TMPL_IF name="errors" -->
        <!-- TMPL_LOOP name="errors" -->
-           <div class="error"><!-- TMPL_VAR name="error" -->.<br />Therefore, the record to be merged has not been deleted.</div>
+           <div class="dialog alert"><!-- TMPL_VAR name="error" -->.<br />Therefore, the record to be merged has not been deleted.</div>
        <!-- /TMPL_LOOP -->
 
        <!-- TMPL_ELSE -->
@@ -189,15 +190,17 @@ $(document).ready(function(){
 <!-- TMPL_ELSE -->
 
 <!-- TMPL_IF NAME="choosereference" -->
-<p>Please choose which record will be the reference for the merge (the record chosen as reference will be kept, and the other will be deleted) : </p>
+<p>Please choose which record will be the reference for the merge. The record chosen as reference will be kept, and the other will be deleted.</p>
 <form id="mergeform" action="/cgi-bin/koha/cataloguing/merge.pl" method="post">
-    <fieldset>
+    <fieldset class="rows">
        <legend>Merge reference</legend>
-       <input type="radio" value="<!-- TMPL_VAR NAME="biblio1" -->" checked="checked" id="mergereference1" name="mergereference" /><label for="mergereference1"><!-- TMPL_VAR NAME="title1" --> (<!-- TMPL_VAR NAME="biblio1" -->)</label><br />
-       <input type="radio" value="<!-- TMPL_VAR NAME="biblio2" -->" id="mergereference2" name="mergereference" /><label for="mergereference2"><!-- TMPL_VAR NAME="title2" --> (<!-- TMPL_VAR NAME="biblio2" -->)</label><br />
+       <ol>
+       <li class="radio"><input type="radio" value="<!-- TMPL_VAR NAME="biblio1" -->" checked="checked" id="mergereference1" name="mergereference" /><label for="mergereference1"><!-- TMPL_VAR NAME="title1" --> (<!-- TMPL_VAR NAME="biblio1" -->)</label></li>
+       <li class="radio"><input type="radio" value="<!-- TMPL_VAR NAME="biblio2" -->" id="mergereference2" name="mergereference" /><label for="mergereference2"><!-- TMPL_VAR NAME="title2" --> (<!-- TMPL_VAR NAME="biblio2" -->)</label></li>
+</ol>
        <input type="hidden" name="biblionumber" value="<!-- TMPL_VAR name="biblio1" -->" />
        <input type="hidden" name="biblionumber" value="<!-- TMPL_VAR name="biblio2" -->" />
-       <input type="submit" />
+       <fieldset class="action"><input type="submit" value="Next" /></fieldset>
     </fieldset>
 </form>
 <!-- TMPL_ELSE -->
@@ -208,7 +211,9 @@ $(document).ready(function(){
 <!-- TMPL_ELSE -->
 <form id="mergeform" action="/cgi-bin/koha/cataloguing/merge.pl" method="post" onsubmit="return mergeformsubmit()">
 
-<div id="tabs" class="yui-u first"> 
+<div class="yui-g">
+<div class="yui-u first">
+<div id="tabs" class="toptabs">
 <h2>Source records</h2>
     <ul>
        <li><a href="#tabrecord1"><!-- TMPL_VAR name="biblio1" --></a></li>
@@ -216,7 +221,7 @@ $(document).ready(function(){
     </ul>
     <div id="tabrecord1">
        <!-- TMPL_IF name="record1" -->
-           <br />
+
            <div class="record">
                <ul id="ulrecord1">
                <!-- TMPL_LOOP NAME="record1" -->
@@ -248,11 +253,11 @@ $(document).ready(function(){
                    </li>
                <!-- /TMPL_LOOP -->
                </ul>
-           </div>
-    </div>
+           </div><!-- /div.record -->
+    </div><!-- /div#tabrecord1 -->
     <div id="tabrecord2">
        <!-- TMPL_IF name="record2" -->
-           <br />
+
           <div class="record">
                <ul id="ulrecord2">
                <!-- TMPL_LOOP NAME="record2" -->
@@ -285,18 +290,19 @@ $(document).ready(function(){
                <!-- /TMPL_LOOP -->
                </ul>
            </div>
-
+           <!-- /div.record -->
 
 
 
 
        <!-- /TMPL_IF -->
-    </div>
+    </div><!-- /div#tabrecord2 -->
 </div> <!-- // #tabs -->
-
-<div id="result" class="yui-u"> 
+</div>
+<div class="yui-u">
+<div id="result">
     <h2>Destination record</h2>
-           <br /><br />
+    <div style="border:1px solid #E8E8E8;padding:1em;margin-top:2em;">
            <ul id="resultul">
        <!-- TMPL_LOOP NAME="record1" -->
                    <!-- TMPL_LOOP NAME="field" --><li id="k<!-- TMPL_VAR name="key" -->"><span class="field"><!-- TMPL_VAR NAME="tag" --></span>  
@@ -330,9 +336,11 @@ $(document).ready(function(){
 <input type="hidden" name="biblio2" value="<!-- TMPL_VAR name="biblio2" -->" />
 <input type="hidden" name="mergereference" value="<!-- TMPL_VAR name="mergereference" -->" />
 
-<p><input type="submit" name="merge" value="merge" /></p>
-
+</div>
 </div> <!-- // #result -->
+</div> <!-- .yui-u -->
+<fieldset class="action"><input type="submit" name="merge" value="Merge" /></fieldset>
+</div>
 </form>
 <!-- /TMPL_IF -->
 <!-- /TMPL_IF -->
index 072a87f..8458208 100644 (file)
                         <!-- TMPL_VAR NAME="date_due" -->
                     </td>
                     <td>
-                        <!-- TMPL_IF name="BiblioDefaultViewmarc" -->
-<a href="/cgi-bin/koha/catalogue/MARCdetail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" ESCAPE="URL" -->"><!-- TMPL_VAR NAME="title" escape="html" --></a>
-<!-- TMPL_ELSIF NAME="BiblioDefaultViewisbd" -->
-<a href="/cgi-bin/koha/catalogue/ISBDdetail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" ESCAPE="URL" -->"><!-- TMPL_VAR NAME="title" escape="html" --></a>
-<!-- TMPL_ELSE -->
-<a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" ESCAPE="URL" -->"><!-- TMPL_VAR NAME="title" escape="html" -->  <!-- TMPL_VAR NAME="subtitle" --></a><!-- /TMPL_IF -->
+                    <!-- TMPL_INCLUDE NAME="biblio-default-view.inc" -->
                             &nbsp; (<b><!-- TMPL_VAR NAME="description" --></b>)
                             <br />Barcode : <!-- TMPL_VAR NAME="barcode" -->
                     </td>
index a056497..5ac278b 100644 (file)
         <!-- TMPL_IF NAME="email" -->[<a href="mailto:<!-- TMPL_VAR NAME="email" -->?subject=Overdue: <!-- TMPL_VAR NAME="title" ESCAPE="html" -->">email</a>]<!-- /TMPL_IF -->
         (<!--TMPL_IF NAME="phone" --><!-- TMPL_VAR NAME="phone" --><!-- TMPL_ELSIF NAME="mobile" --><!-- TMPL_VAR NAME="mobile" --><!-- TMPL_ELSIF NAME="phonepro" --><!-- TMPL_VAR NAME="phonepro" --><!-- /TMPL_IF -->)</td>
         <td><!-- TMPL_VAR name="branchcode" --></td>
-        <td><!-- TMPL_IF name="BiblioDefaultViewmarc" -->
-<a href="/cgi-bin/koha/catalogue/MARCdetail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" ESCAPE="URL" -->"><!-- TMPL_VAR NAME="title" ESCAPE="html" --></a>
-<!-- TMPL_ELSIF NAME="BiblioDefaultViewisbd" -->
-<a href="/cgi-bin/koha/catalogue/ISBDdetail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" ESCAPE="URL" -->"><!-- TMPL_VAR NAME="title" ESCAPE="html" --></a>
-<!-- TMPL_ELSE -->
-<a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" ESCAPE="URL" -->"><!-- TMPL_VAR NAME="title" ESCAPE="html" -->  <!-- TMPL_VAR NAME="subtitle" --></a><!-- /TMPL_IF --> <!-- TMPL_IF NAME="author" -->, by <!-- TMPL_VAR NAME="author" --><!-- /TMPL_IF -->
+        <td><!-- TMPL_INCLUDE NAME="biblio-default-view.inc" --><!-- TMPL_VAR NAME="title" ESCAPE="html" -->  <!-- TMPL_VAR NAME="subtitle" --></a> <!-- TMPL_IF NAME="author" -->, by <!-- TMPL_VAR NAME="author" --><!-- /TMPL_IF -->
         </td>
                <td><a href="/cgi-bin/koha/catalogue/moredetail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->&amp;itemnumber=<!-- TMPL_VAR NAME="itemnum" -->#item<!-- TMPL_VAR NAME="itemnum" -->"><!-- TMPL_VAR name="barcode" --></a></td>
                <td><!-- TMPL_VAR name="itemcallnumber" --></td>
index 28efee4..7b5ea18 100644 (file)
@@ -118,21 +118,9 @@ $.tablesorter.addParser({
                 <td><!-- TMPL_VAR NAME="rcount" --></td> 
                 <td>
                     <p>
-                    <!-- TMPL_IF name="BiblioDefaultViewmarc" -->
-                    <a href="/cgi-bin/koha/catalogue/MARCdetail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" ESCAPE="URL" -->">
-                        <!-- TMPL_VAR NAME="title" escape="html" --> <!-- TMPL_VAR NAME="subtitle" -->
-                    </a>
-                    <!-- TMPL_ELSE -->
-                        <!-- TMPL_IF name="BiblioDefaultViewisbd" -->
-                        <a href="/cgi-bin/koha/catalogue/ISBDdetail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" ESCAPE="URL" -->">
-                            <!-- TMPL_VAR NAME="title" escape="html" --> <!-- TMPL_VAR NAME="subtitle" -->
-                        </a>
-                        <!-- TMPL_ELSE -->
-                            <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" ESCAPE="URL" -->">
+            <!-- TMPL_INCLUDE NAME="biblio-default-view.inc" -->
                                 <!-- TMPL_VAR NAME="title" escape="html" --> <!-- TMPL_VAR NAME="subtitle" -->
                             </a>
-                        <!-- /TMPL_IF -->
-                    <!-- /TMPL_IF -->
                     </p>
                 </td>
             <!-- TMPL_ELSE -->
index c13cf33..68c4209 100644 (file)
@@ -92,14 +92,7 @@ $.tablesorter.addParser({
                <td><p><!-- TMPL_VAR NAME="itemcount" --></p></td>
                <td><p class="ratiolimit"><!-- TMPL_VAR NAME="thisratio" --></p></td>
             <td><p>
-                   <!-- TMPL_IF name="BiblioDefaultViewmarc" -->
-                   <a href="/cgi-bin/koha/catalogue/MARCdetail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" ESCAPE="URL" -->">
-                   <!-- TMPL_ELSIF name="BiblioDefaultViewisbd" -->
-                   <a href="/cgi-bin/koha/catalogue/ISBDdetail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" ESCAPE="URL" -->">
-                   <!-- TMPL_ELSE -->
-                   <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" ESCAPE="URL" -->">
-                   <!-- /TMPL_IF -->
-                      <!-- TMPL_VAR NAME="title" escape="html" --> <!-- TMPL_VAR NAME="subtitle" -->
+                <!-- TMPL_INCLUDE NAME="biblio-default-view.inc" --><!-- TMPL_VAR NAME="title" escape="html" --> <!-- TMPL_VAR NAME="subtitle" -->
                    </a>
                 </p>
                 <p><!-- TMPL_VAR NAME="notes" --></p>
index 0a5010f..b9bd702 100644 (file)
@@ -59,12 +59,7 @@ $(document).ready(function() {
                 <!-- /TMPL_IF -->
                     <td><p><!-- TMPL_VAR NAME="datetransfer" --></p> <!-- TMPL_IF NAME="messcompa" --><span class="error">Transfer is <!-- TMPL_VAR NAME="diff" --> days late</span><!-- /TMPL_IF --></td>
                     <td><span style="display:none;"><!-- TMPL_VAR NAME="title" escape="html" --></span><!-- invisible title for tablesorter -->
-                        <!-- TMPL_IF name="BiblioDefaultViewmarc" -->
-<a href="/cgi-bin/koha/catalogue/MARCdetail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" ESCAPE="URL" -->"><!-- TMPL_VAR NAME="title" escape="html" --> <!-- TMPL_IF NAME="subtitle" --> <!-- TMPL_LOOP NAME="subtitle" --><!-- TMPL_VAR NAME="subfield" --><!-- /TMPL_LOOP --><!-- /TMPL_IF --></a>
-<!-- TMPL_ELSIF NAME="BiblioDefaultViewisbd" -->
-<a href="/cgi-bin/koha/catalogue/ISBDdetail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" ESCAPE="URL" -->"><!-- TMPL_VAR NAME="title" escape="html" --> <!-- TMPL_IF NAME="subtitle" --> <!-- TMPL_LOOP NAME="subtitle" --><!-- TMPL_VAR NAME="subfield" --><!-- /TMPL_LOOP --><!-- /TMPL_IF --></a>
-<!-- TMPL_ELSE -->
-<a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" ESCAPE="URL" -->"><!-- TMPL_VAR NAME="title" escape="html" --> <!-- TMPL_IF NAME="subtitle" --> <!-- TMPL_LOOP NAME="subtitle" --><!-- TMPL_VAR NAME="subfield" --><!-- /TMPL_LOOP --><!-- /TMPL_IF --></a><!-- /TMPL_IF --> <!-- TMPL_IF NAME="author" -->by <!-- TMPL_VAR NAME="author" --><!-- /TMPL_IF -->
+                   <!-- TMPL_INCLUDE NAME="biblio-default-view.inc" --><!-- TMPL_VAR NAME="title" escape="html" --> <!-- TMPL_IF NAME="subtitle" --> <!-- TMPL_LOOP NAME="subtitle" --><!-- TMPL_VAR NAME="subfield" --><!-- /TMPL_LOOP --><!-- /TMPL_IF --></a> <!-- TMPL_IF NAME="author" -->by <!-- TMPL_VAR NAME="author" --><!-- /TMPL_IF -->
                             <!-- TMPL_IF NAME="itemtype" -->&nbsp; (<b><!-- TMPL_VAR NAME="itemtype" --></b>)<!-- /TMPL_IF -->
                             <br />Barcode: <!-- TMPL_VAR NAME="barcode" -->
                     </td>
index 16b821b..bbb5dfb 100644 (file)
@@ -85,13 +85,7 @@ $.tablesorter.addParser({
                 <tr>
                     <td><p><!-- TMPL_VAR NAME="waitingdate" --></p></td>
                     <td>
-                        <!-- TMPL_IF name="BiblioDefaultViewmarc" -->
-                        <a href="/cgi-bin/koha/catalogue/MARCdetail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" ESCAPE="URL" -->">
-                        <!-- TMPL_ELSIF NAME="BiblioDefaultViewisbd" -->
-                        <a href="/cgi-bin/koha/catalogue/ISBDdetail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" ESCAPE="URL" -->">
-                        <!-- TMPL_ELSE -->
-                        <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" ESCAPE="URL" -->">
-                        <!-- /TMPL_IF -->
+                        <!-- TMPL_INCLUDE NAME="biblio-default-view.inc" -->
                         <!-- TMPL_VAR NAME="title" escape="html" --> <!-- TMPL_VAR NAME="subtitle" ESCAPE="html" -->
                         </a>
                             &nbsp; (<b><!-- TMPL_VAR NAME="itemtype" --></b>)
index 6caa517..f0d744e 100644 (file)
                    <span style="background-color: #ffe599">
 TIP: If a staff member is set to 'superlibrarian' they have access to all functions and do not need any other permissions checked</span></li>
                </ul></li>
-               <li>To give staff members more granular permissions, you can turn on the GranularPermissions system preference
-               <ul>
-                       <li><em>Get there:</em> More &gt; Administration &gt; General preferences &gt; Admin &gt; GranularPermissions</li>
-                       <li>If this setting is on the permissions menu will offer more granual permissions</li>
-                       <li>This allows staff members access to specific tools
-                       <ul>
-                               <li>
-                           <span style="background-color: #ffe599">
-TIP: If this preference is turned OFF after being ON, the system reverts to the original behavior, although the specific permissions are retained.&nbsp; This means if a staff member has been given granular permissions they will retain those even if this is turned OFF</span></li>
-                       </ul></li>
-               </ul></li>
        </ul>
 
 <h3>What will each permission level do?</h3>
@@ -37,10 +26,6 @@ TIP: If this preference is turned OFF after being ON, the system reverts to the
                <li><strong>circulate</strong>
                <ul>
                        <li>Ability for logged in user to check books out and back in</li>
-                       <li>With GranularPermissions on this section will be expanded to allow access to specific ciculation functions.
-                       <ul>
-                               <li><em>Get there:</em> More &gt; Administration &gt; Global System Preferences &gt; Admin &gt; GranularPermissions</li>
-                       </ul></li>
                </ul></li>
                <li><strong>catalog</strong>
                <ul>
@@ -86,10 +71,6 @@ TIP: If this preference is turned OFF after being ON, the system reverts to the
                <li><strong>tools</strong>
                <ul>
                        <li>Use tools (export, import, barcodes)</li>
-                       <li>With GranularPermissions on this section will be expanded to allow access only to specific tools
-                       <ul>
-                               <li><em>Get there:</em> More &gt; Administration &gt; Global System Preferences &gt; Admin &gt; GranularPermissions</li>
-                       </ul></li>
                </ul></li>
                <li><strong>editauthorities</strong>
                <ul>
@@ -107,4 +88,4 @@ TIP: If this preference is turned OFF after being ON, the system reverts to the
                <ul>
                        <li>Provides the ability to modify login / permissions for staff users</li>
                </ul></li>
-       </ul><!-- TMPL_INCLUDE NAME="help-bottom.inc" -->
\ No newline at end of file
+       </ul><!-- TMPL_INCLUDE NAME="help-bottom.inc" -->
index 67e9397..dfad6ee 100644 (file)
@@ -337,7 +337,9 @@ if (nodename =="barcodes[]"){
       <li><span class="label">Address 2: </span><!-- TMPL_VAR NAME="B_address2" --></li>
       <li><span class="label">City, State: </span><!-- TMPL_VAR NAME="B_city" --></li>
       <li><span class="label">Zip/Postal Code: </span><!-- TMPL_VAR NAME="B_zipcode" --></li>
-      <li><span class="label">Country: </span><!-- TMPL_VAR NAME="B_country" --></li></ol></div>
+      <li><span class="label">Country: </span><!-- TMPL_VAR NAME="B_country" --></li>
+      <!-- TMPL_IF NAME="B_phone"--><li><span class="label">Phone: </span><!-- TMPL_VAR NAME="B_phone" --></li><!-- /TMPL_IF -->
+      <!-- TMPL_IF NAME="B_email"--><li><span class="label">Email: </span><!-- TMPL_VAR NAME="B_email" --></li><!-- /TMPL_IF --></ol></div>
     <!-- /TMPL_UNLESS --><!-- /TMPL_UNLESS -->
      <!-- TMPL_IF NAME="C" -->
    <div class="rows"> <ol><li><span class="label">Surname: </span><!-- TMPL_VAR NAME="contactname" --></li>
index 0f06ec8..67baf2d 100644 (file)
@@ -47,14 +47,14 @@ function check() {
     }
 
     if (count_reserv == "0"){
-               msg += (_("- Please select an item to place a hold\n"));
+               msg += (_("- Please select an item to place a hold") + "\n");
     }
     if (count_reserv >= "2"){
-               msg += (_("- You may only place a hold on one item at a time\n"));
+               msg += (_("- You may only place a hold on one item at a time") + "\n");
     }
 
     if (alreadyreserved > "0"){
-               msg += (_("- This patron had already placed a hold on this item\n Please cancel the previous hold first \n"));
+               msg += (_("- This patron had already placed a hold on this item") + "\n" + _("Please cancel the previous hold first") + "\n");
     }
 
        if (msg == "") return(true);
@@ -164,7 +164,7 @@ function checkMultiHold() {
   <!-- /TMPL_IF -->
 
   <!-- TMPL_UNLESS NAME="multi_hold" -->
-    <h1>Place a hold on <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->"><!-- TMPL_VAR NAME="title" escape="html" --></a></h1>
+    <h1>Place a hold on <!-- TMPL_INCLUDE NAME="biblio-default-view.inc" --><!-- TMPL_VAR NAME="title" escape="html" --></a></h1>
   <!-- TMPL_ELSE -->
     <h1>Confirm Holds</h1>
   <!-- /TMPL_UNLESS -->
@@ -585,7 +585,11 @@ function checkMultiHold() {
           <input type="hidden" name="biblionumber" value="<!-- TMPL_VAR NAME="biblionumber" -->" />
           <select name="rank-request">
     <!-- TMPL_IF Name="wait" -->
+        <!-- TMPL_IF NAME="intransit" -->
+            <option value="T" selected="selected">In transit</option>
+        <!-- TMPL_ELSE -->
             <option value="W" selected="selected">Waiting</option>
+        <!-- /TMPL_IF -->
     <!-- /TMPL_IF -->
        <!-- TMPL_IF NAME="CAN_user_reserveforothers_modify_holds_priority" --><!-- TMPL_LOOP Name="optionloop" -->
         <!-- TMPL_IF Name="selected" --><option value="<!-- TMPL_VAR NAME="num" -->" selected="selected"><!-- TMPL_VAR NAME="num" --></option><!-- TMPL_ELSE --><option value="<!-- TMPL_VAR NAME="num" -->"><!-- TMPL_VAR NAME="num" --></option><!-- /TMPL_IF -->
index b4158eb..dd22f10 100644 (file)
@@ -129,7 +129,7 @@ Serials updated :
                 <!-- TMPL_IF NAME="cannotedit" -->
                   &nbsp;        
                 <!-- TMPL_ELSE -->
-                  <a href="/cgi-bin/koha/serials/serials-edit.pl?subscriptionid=<!-- TMPL_VAR name="subscriptionid" -->&amp;serstatus=1,3,7">Serial receive</a>
+                  <!-- TMPL_IF name="CAN_user_serials_receive_serials" --><a href="/cgi-bin/koha/serials/serials-edit.pl?subscriptionid=<!-- TMPL_VAR name="subscriptionid" -->&amp;serstatus=1,3,7">Serial receive</a><!-- /TMPL_IF -->
                 <!-- /TMPL_IF -->
                 </td>
             </tr>
index dd8f069..5a665de 100644 (file)
@@ -985,8 +985,15 @@ $(document).ready(function() {
             
                 <input type="text" name="biblionumber" id="biblionumber" value="<!-- TMPL_VAR name="bibnum" -->" size="8" /> 
                 (<input type="text" name="title" value="<!-- TMPL_VAR name="bibliotitle" -->" disabled="disabled" readonly="readonly" />) <span class="required" title="Subscriptions must be associated with a bibliographic record">Required</span>
-               <div class="inputnote"> <a href="#" onclick="Plugin(f)">Search for Biblio</a> | <!--TMPL_IF Name="mod"--><a href="#" onclick="addbiblioPopup(<!-- TMPL_VAR NAME="bibnum" -->); return false;">Edit biblio</a><!-- TMPL_ELSE -->
-                <a href="#" onclick="addbiblioPopup(); return false;">Create Biblio</a><!--/TMPL_IF--></div>
+               <div class="inputnote"> <a href="#" onclick="Plugin(f)">Search for Biblio</a>
+                   <!-- TMPL_IF name="CAN_user_editcatalogue" --> 
+                      <!--TMPL_IF Name="mod"-->
+                      | <a href="#" onclick="addbiblioPopup(<!-- TMPL_VAR NAME="bibnum" -->); return false;">Edit biblio</a>
+                      <!-- TMPL_ELSE -->
+                      | <a href="#" onclick="addbiblioPopup(); return false;">Create Biblio</a>
+                      <!--/TMPL_IF-->
+                   <!--/TMPL_IF-->
+              </div>
             
         </li>
         <li class="radio">
index 47ea42c..c6f82b9 100644 (file)
        <!-- /TMPL_IF -->
     <!-- /TMPL_UNLESS -->
 
-<!-- TMPL_ELSE -->
-    <p>No items found</p>
-<!-- /TMPL_IF -->
-
 <!-- TMPL_IF name="action" -->
        <div class="dialog message"><p><!-- TMPL_VAR NAME="deleted_items" --> item(s) deleted.</p></div>
        <!-- TMPL_IF NAME="not_deleted_items" -->
index 39e6793..3f7b387 100644 (file)
@@ -96,14 +96,14 @@ function placeHold () {
                var alertString2;
 
            if(f.addshelf.value.length ==0){
-                       _alertString += _("- You must enter a List Name\n");
+                       _alertString += _("- You must enter a List Name") + "\n";
                }
 
                if (_alertString.length==0) {
                        document.Aform.submit();
                } else {
-                       alertString2 = _("Form not submitted because of the following problem(s)\n");
-                       alertString2 += "------------------------------------------------------------------------------------\n\n";
+                       alertString2 = _("Form not submitted because of the following problem(s)");
+                       alertString2 += "\n------------------------------------------------------------------------------------\n\n";
                        alertString2 += _alertString;
                        alert(alertString2);
                }
@@ -196,13 +196,7 @@ function placeHold () {
                 <img src="<!-- TMPL_VAR NAME="imageurl" -->" alt="<!-- TMPL_VAR NAME="description" -->" title="<!-- TMPL_VAR NAME="description" -->" /><!-- TMPL_VAR NAME="description" -->
                        </td><!-- /TMPL_UNLESS -->
                        <td>
-                       <!-- TMPL_IF name="BiblioDefaultViewmarc" -->
-                               <a class="title" href="/cgi-bin/koha/catalogue/MARCdetail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" ESCAPE="URL" -->">
-            <!-- TMPL_ELSIF NAME="BiblioDefaultViewisbd" -->
-                               <a class="title" href="/cgi-bin/koha/catalogue/ISBDdetail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" ESCAPE="URL" -->">
-            <!-- TMPL_ELSE -->
-                               <a class="title" href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" ESCAPE="URL" -->">
-                       <!-- /TMPL_IF -->
+                       <!-- TMPL_INCLUDE NAME="biblio-default-view.inc" -->
                        <!-- TMPL_VAR NAME="title" escape="html" --><!-- TMPL_LOOP NAME="subtitle" --> <!-- TMPL_VAR NAME="subfield" --><!-- /TMPL_LOOP --></a>
                        </td>
                        <td><!-- TMPL_VAR NAME="author" --></td>
index 7fcd66a..0067cef 100644 (file)
@@ -16,9 +16,9 @@
         <!-- Option: Display Alternate Graphic Representation (MARC 880)  -->
         <xsl:variable name="display880" select="boolean(marc:datafield[@tag=880])"/>
 
-    <xsl:variable name="DisplayOPACiconsXSLT" select="marc:sysprefs/marc:syspref[@name='DisplayOPACiconsXSLT']"/>
-    <xsl:variable name="OPACURLOpenInNewWindow" select="marc:sysprefs/marc:syspref[@name='OPACURLOpenInNewWindow']"/>
-    <xsl:variable name="URLLinkText" select="marc:sysprefs/marc:syspref[@name='URLLinkText']"/>
+        <xsl:variable name="URLLinkText" select="marc:sysprefs/marc:syspref[@name='URLLinkText']"/>
+        <xsl:variable name="OPACBaseURL" select="marc:sysprefs/marc:syspref[@name='OPACBaseURL']"/>
+
         <xsl:variable name="leader" select="marc:leader"/>
         <xsl:variable name="leader6" select="substring($leader,7,1)"/>
         <xsl:variable name="leader7" select="substring($leader,8,1)"/>
@@ -36,7 +36,8 @@
                 <xsl:when test="$leader6='m'">CF</xsl:when>
                 <xsl:when test="$leader6='e' or $leader6='f'">MP</xsl:when>
                 <xsl:when test="$leader6='g' or $leader6='k' or $leader6='o' or $leader6='r'">VM</xsl:when>
-                <xsl:when test="$leader6='c' or $leader6='d' or $leader6='i' or $leader6='j'">MU</xsl:when>
+                <xsl:when test="$leader6='i' or $leader6='j'">MU</xsl:when>
+                <xsl:when test="$leader6='c' or $leader6='d'">PR</xsl:when>
             </xsl:choose>
         </xsl:variable>
         <xsl:variable name="materialTypeLabel">
@@ -52,7 +53,9 @@
                 <xsl:when test="$leader6='m'">Computer File</xsl:when>
                 <xsl:when test="$leader6='e' or $leader6='f'">Map</xsl:when>
                 <xsl:when test="$leader6='g' or $leader6='k' or $leader6='o' or $leader6='r'">Visual Material</xsl:when>
-                <xsl:when test="$leader6='c' or $leader6='d' or $leader6='i' or $leader6='j'">Sound</xsl:when>
+                <xsl:when test="$leader6='j'">Music</xsl:when>
+                <xsl:when test="$leader6='i'">Sound</xsl:when>
+                <xsl:when test="$leader6='c' or $leader6='d'">Score</xsl:when>
             </xsl:choose>
         </xsl:variable>
 
@@ -85,6 +88,7 @@
                             <xsl:with-param name="codes">h</xsl:with-param>
                         </xsl:call-template>
                     </xsl:if>
+                    <xsl:text> </xsl:text>
                     <xsl:call-template name="subfieldSelect">
                         <xsl:with-param name="codes">fgknps</xsl:with-param>
                     </xsl:call-template>
         </xsl:when>
         </xsl:choose>
 
-   <xsl:if test="$DisplayOPACiconsXSLT!='0'">
-        <xsl:if test="$materialTypeCode!=''">
+   <xsl:if test="$materialTypeCode!=''">
         <span class="results_summary"><span class="label">Type: </span>
-        <xsl:element name="img"><xsl:attribute name="src">/opac-tmpl/prog/famfamfam/<xsl:value-of select="$materialTypeCode"/>.png</xsl:attribute><xsl:attribute name="alt"></xsl:attribute></xsl:element>
+        <xsl:element name="img"><xsl:attribute name="src">/intranet-tmpl/prog/img/famfamfam/<xsl:value-of select="$materialTypeCode"/>.png</xsl:attribute><xsl:attribute name="alt"></xsl:attribute></xsl:element>
+        <xsl:text> </xsl:text>
         <xsl:value-of select="$materialTypeLabel"/>
         </span>
-        </xsl:if>
    </xsl:if>
 
         <!--Series: Alternate Graphic Representation (MARC 880) -->
         <xsl:if test="marc:datafield[@tag=856]">
         <span class="results_summary"><span class="label">Online Resources: </span>
         <xsl:for-each select="marc:datafield[@tag=856]">
-                            <xsl:if test="$OPACURLOpenInNewWindow='0'">
                                    <a><xsl:attribute name="href"><xsl:value-of select="marc:subfield[@code='u']"/></xsl:attribute>
                                     <xsl:choose>
                                     <xsl:when test="marc:subfield[@code='y' or @code='3' or @code='z']">
                                     </xsl:when>
                                     </xsl:choose>
                                     </a>
-                              </xsl:if>
-                            <xsl:if test="$OPACURLOpenInNewWindow='1'">
-                                   <a target='_blank'><xsl:attribute name="href"><xsl:value-of select="marc:subfield[@code='u']"/></xsl:attribute>
-                                    <xsl:choose>
-                                    <xsl:when test="marc:subfield[@code='y' or @code='3' or @code='z']">
-                                        <xsl:call-template name="subfieldSelect">
-                                        <xsl:with-param name="codes">y3z</xsl:with-param>
-                                        </xsl:call-template>
-                                    </xsl:when>
-                                    <xsl:when test="not(marc:subfield[@code='y']) and not(marc:subfield[@code='3']) and not(marc:subfield[@code='z'])">
-                                        <xsl:choose>
-                                        <xsl:when test="$URLLinkText!=''">
-                                                <xsl:value-of select="$URLLinkText"/>
-                                        </xsl:when>
-                                        <xsl:otherwise>
-                                                <xsl:text>Click here to access online</xsl:text>
-                                        </xsl:otherwise>
-                                        </xsl:choose>
-                                    </xsl:when>
-                                    </xsl:choose>
-                                    </a>
-                              </xsl:if>
                                     <xsl:choose>
                                     <xsl:when test="position()=last()"><xsl:text>  </xsl:text></xsl:when>
                                     <xsl:otherwise> | </xsl:otherwise>
         </xsl:if>
         <xsl:if test="marc:datafield[@tag=505]">
         <xsl:for-each select="marc:datafield[@tag=505]">
-        <span class="results_summary"><span class="label">
+        <span class="results_summary">
         <xsl:choose>
         <xsl:when test="@ind1=0">
-            Contents:
+            <span class="label">Contents:</span>
         </xsl:when>
         <xsl:when test="@ind1=1">
-            Incomplete contents:
+            <span class="label">Incomplete contents:</span>
         </xsl:when>
         <xsl:when test="@ind1=1">
-            Partial contents:
+            <span class="label">Partial contents:</span>
         </xsl:when>
         </xsl:choose>  
-        </span>
         <xsl:choose>
         <xsl:when test="@ind2=0">
             <xsl:for-each select="marc:subfield[@code='t']">
         <!-- 780 -->
         <xsl:if test="marc:datafield[@tag=780]">
         <xsl:for-each select="marc:datafield[@tag=780]">
-        <span class="results_summary"><span class="label">
+        <span class="results_summary">
         <xsl:choose>
         <xsl:when test="@ind2=0">
-            Continues:
+            <span class="label">Continues:</span>
         </xsl:when>
         <xsl:when test="@ind2=1">
-            Continues in part:
+            <span class="label">Continues in part:</span>
         </xsl:when>
         <xsl:when test="@ind2=2">
-            Supersedes:
+            <span class="label">Supersedes:</span>
         </xsl:when>
         <xsl:when test="@ind2=3">
-            Supersedes in part:
+            <span class="label">Supersedes in part:</span>
         </xsl:when>
         <xsl:when test="@ind2=4">
-            Formed by the union: ... and: ...
+            <span class="label">Formed by the union: ... and: ...</span>
         </xsl:when>
         <xsl:when test="@ind2=5">
-            Absorbed:
+            <span class="label">Absorbed:</span>
         </xsl:when>
         <xsl:when test="@ind2=6">
-            Absorbed in part:
+            <span class="label">Absorbed in part:</span>
         </xsl:when>
         <xsl:when test="@ind2=7">
-            Separated from:
+            <span class="label">Separated from:</span>
         </xsl:when>
         </xsl:choose>
-        </span>
                 <xsl:variable name="f780">
                     <xsl:call-template name="subfieldSelect">
                         <xsl:with-param name="codes">at</xsl:with-param>
         <!-- 785 -->
         <xsl:if test="marc:datafield[@tag=785]">
         <xsl:for-each select="marc:datafield[@tag=785]">
-        <span class="results_summary"><span class="label">
+        <span class="results_summary">
         <xsl:choose>
         <xsl:when test="@ind2=0">
-            Continued by:
+            <span class="label">Continued by:</span>
         </xsl:when>
         <xsl:when test="@ind2=1">
-            Continued in part by:
+            <span class="label">Continued in part by:</span>
         </xsl:when>
         <xsl:when test="@ind2=2">
-            Superseded by:
+            <span class="label">Superseded by:</span>
         </xsl:when>
         <xsl:when test="@ind2=3">
-            Superseded in part by:
+            <span class="label">Superseded in part by:</span>
         </xsl:when>
         <xsl:when test="@ind2=4">
-            Absorbed by:
+            <span class="label">Absorbed by:</span>
         </xsl:when>
         <xsl:when test="@ind2=5">
-            Absorbed in part by:
+            <span class="label">Absorbed in part by:</span>
         </xsl:when>
         <xsl:when test="@ind2=6">
-            Split into .. and ...:
+            <span class="label">Split into .. and ...:</span>
         </xsl:when>
         <xsl:when test="@ind2=7">
-            Merged with ... to form ...
+            <span class="label">Merged with ... to form ...</span>
         </xsl:when>
         <xsl:when test="@ind2=8">
-            Changed back to:
+            <span class="label">Changed back to:</span>
         </xsl:when>
 
         </xsl:choose>
-        </span>
                    <xsl:variable name="f785">
                     <xsl:call-template name="subfieldSelect">
                         <xsl:with-param name="codes">at</xsl:with-param>
         </xsl:for-each>
         </xsl:if>
 
+        <xsl:if test="$OPACBaseURL!=''">
+        <span class="results_summary"><span class="label">OPAC view: </span>
+            <a><xsl:attribute name="href">http://<xsl:value-of select="$OPACBaseURL"/>/cgi-bin/koha/opac-detail.pl?biblionumber=<xsl:value-of select="marc:datafield[@tag=999]/marc:subfield[@code='c']"/></xsl:attribute><xsl:attribute name="target">_blank</xsl:attribute>Open in new window</a>.
+        </span>
+        </xsl:if>
+
     </xsl:template>
 
     <xsl:template name="nameABCDQ">
         </xsl:variable>
         <xsl:value-of select="substring($str,1,string-length($str)-1)"/>
     </xsl:template>
+
 </xsl:stylesheet>
index 13714d4..b00a04e 100644 (file)
@@ -16,7 +16,7 @@
   <xsl:variable name="leader6" select="substring($leader,7,1)"/>
   <xsl:variable name="leader7" select="substring($leader,8,1)"/>
   <xsl:variable name="biblionumber" select="marc:datafield[@tag=090]/marc:subfield[@code='a']"/>
-  
+
 
   <xsl:if test="marc:datafield[@tag=200]">
     <xsl:for-each select="marc:datafield[@tag=200]">
     <li>
       <strong>Note sur la provenance: </strong>
       <xsl:for-each select="marc:datafield[@tag=317]">
-          <xsl:value-of select="marc:subfield[@code='a']"/>      
+          <xsl:value-of select="marc:subfield[@code='a']"/>
       </xsl:for-each>
     </li>
   </xsl:if>
     <li>
       <strong>SUDOC serial history: </strong>
       <xsl:for-each select="marc:datafield[@tag=955]">
-        <xsl:value-of select="marc:subfield[@code='9']"/>: 
+        <xsl:value-of select="marc:subfield[@code='9']"/>:
         <xsl:value-of select="marc:subfield[@code='r']"/>
         <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
       </xsl:for-each>
     <li>
       <strong>SUDOC serial history: </strong>
       <xsl:for-each select="marc:datafield[@tag=955]">
-        <xsl:value-of select="marc:subfield[@code='9']"/>: 
+        <xsl:value-of select="marc:subfield[@code='9']"/>:
         <xsl:value-of select="marc:subfield[@code='r']"/>
         <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
       </xsl:for-each>
         <xsl:choose>
           <xsl:when test="position()=last()"></xsl:when>
           <xsl:otherwise> | </xsl:otherwise>
-        </xsl:choose>      
+        </xsl:choose>
       </xsl:for-each>
     </li>
   </xsl:if>
         <!-- 780 -->
         <xsl:if test="marc:datafield[@tag=780]">
         <xsl:for-each select="marc:datafield[@tag=780]">
-        <li><strong>
+        <li>
         <xsl:choose>
         <xsl:when test="@ind2=0">
-            Continues:
+            <strong>Continues:</strong>
         </xsl:when>
         <xsl:when test="@ind2=1">
-            Continues in part:
+            <strong>Continues in part:</strong>
         </xsl:when>
         <xsl:when test="@ind2=2">
-            Supersedes:
+            <strong>Supersedes:</strong>
         </xsl:when>
         <xsl:when test="@ind2=3">
-            Supersedes in part:
+            <strong>Supersedes in part:</strong>
         </xsl:when>
         <xsl:when test="@ind2=4">
-            Formed by the union: ... and: ...
+            <strong>Formed by the union: ... and: ...</strong>
         </xsl:when>
         <xsl:when test="@ind2=5">
-            Absorbed:
+            <strong>Absorbed:</strong>
         </xsl:when>
         <xsl:when test="@ind2=6">
-            Absorbed in part:
+            <strong>Absorbed in part:</strong>
         </xsl:when>
         <xsl:when test="@ind2=7">
-            Separated from:
+            <strong>Separated from:</strong>
         </xsl:when>
         </xsl:choose>
-        </strong>
+
                 <xsl:variable name="f780">
                     <xsl:call-template name="subfieldSelect">
                         <xsl:with-param name="codes">at</xsl:with-param>
                 <xsl:value-of select="translate($f780, '()', '')"/>
             </a>
         </li>
+
         <xsl:choose>
         <xsl:when test="@ind1=0">
             <li><xsl:value-of select="marc:subfield[@code='n']"/></li>
         <!-- 785 -->
         <xsl:if test="marc:datafield[@tag=785]">
         <xsl:for-each select="marc:datafield[@tag=785]">
-        <li><strong>
+        <li>
         <xsl:choose>
         <xsl:when test="@ind2=0">
-            Continued by:
+            <strong>Continued by:</strong>
         </xsl:when>
         <xsl:when test="@ind2=1">
-            Continued in part by:
+            <strong>Continued in part by:</strong>
         </xsl:when>
         <xsl:when test="@ind2=2">
-            Superseded by:
+            <strong>Superseded by:</strong>
         </xsl:when>
         <xsl:when test="@ind2=3">
-            Superseded in part by:
+            <strong>Superseded in part by:</strong>
         </xsl:when>
         <xsl:when test="@ind2=4">
-            Absorbed by:
+            <strong>Absorbed by:</strong>
         </xsl:when>
         <xsl:when test="@ind2=5">
-            Absorbed in part by:
+            <strong>Absorbed in part by:</strong>
         </xsl:when>
         <xsl:when test="@ind2=6">
-            Split into .. and ...:
+            <strong>Split into .. and ...:</strong>
         </xsl:when>
         <xsl:when test="@ind2=7">
-            Merged with ... to form ...
+            <strong>Merged with ... to form ...</strong>
         </xsl:when>
         <xsl:when test="@ind2=8">
-            Changed back to:
+            <strong>Changed back to:</strong>
         </xsl:when>
-
         </xsl:choose>
-        </strong>
                    <xsl:variable name="f785">
                     <xsl:call-template name="subfieldSelect">
                         <xsl:with-param name="codes">at</xsl:with-param>
diff --git a/koha-tmpl/intranet-tmpl/prog/img/clone-subfield.png b/koha-tmpl/intranet-tmpl/prog/img/clone-subfield.png
new file mode 100644 (file)
index 0000000..78da39e
Binary files /dev/null and b/koha-tmpl/intranet-tmpl/prog/img/clone-subfield.png differ
diff --git a/koha-tmpl/intranet-tmpl/prog/img/delete-subfield.png b/koha-tmpl/intranet-tmpl/prog/img/delete-subfield.png
new file mode 100644 (file)
index 0000000..c1e676f
Binary files /dev/null and b/koha-tmpl/intranet-tmpl/prog/img/delete-subfield.png differ
diff --git a/koha-tmpl/intranet-tmpl/prog/img/famfamfam/BK.png b/koha-tmpl/intranet-tmpl/prog/img/famfamfam/BK.png
new file mode 100644 (file)
index 0000000..b0f4dd7
Binary files /dev/null and b/koha-tmpl/intranet-tmpl/prog/img/famfamfam/BK.png differ
diff --git a/koha-tmpl/intranet-tmpl/prog/img/famfamfam/CF.png b/koha-tmpl/intranet-tmpl/prog/img/famfamfam/CF.png
new file mode 100644 (file)
index 0000000..99d532e
Binary files /dev/null and b/koha-tmpl/intranet-tmpl/prog/img/famfamfam/CF.png differ
diff --git a/koha-tmpl/intranet-tmpl/prog/img/famfamfam/MM.png b/koha-tmpl/intranet-tmpl/prog/img/famfamfam/MM.png
new file mode 100644 (file)
index 0000000..1c856cd
Binary files /dev/null and b/koha-tmpl/intranet-tmpl/prog/img/famfamfam/MM.png differ
diff --git a/koha-tmpl/intranet-tmpl/prog/img/famfamfam/MP.png b/koha-tmpl/intranet-tmpl/prog/img/famfamfam/MP.png
new file mode 100644 (file)
index 0000000..f90ef25
Binary files /dev/null and b/koha-tmpl/intranet-tmpl/prog/img/famfamfam/MP.png differ
diff --git a/koha-tmpl/intranet-tmpl/prog/img/famfamfam/MU.png b/koha-tmpl/intranet-tmpl/prog/img/famfamfam/MU.png
new file mode 100644 (file)
index 0000000..6056d23
Binary files /dev/null and b/koha-tmpl/intranet-tmpl/prog/img/famfamfam/MU.png differ
diff --git a/koha-tmpl/intranet-tmpl/prog/img/famfamfam/SE.png b/koha-tmpl/intranet-tmpl/prog/img/famfamfam/SE.png
new file mode 100644 (file)
index 0000000..6a2ecce
Binary files /dev/null and b/koha-tmpl/intranet-tmpl/prog/img/famfamfam/SE.png differ
diff --git a/koha-tmpl/intranet-tmpl/prog/img/famfamfam/VM.png b/koha-tmpl/intranet-tmpl/prog/img/famfamfam/VM.png
new file mode 100644 (file)
index 0000000..b0ce7bb
Binary files /dev/null and b/koha-tmpl/intranet-tmpl/prog/img/famfamfam/VM.png differ
index 217993c..1063eec 100644 (file)
@@ -73,9 +73,9 @@ function tagAdded() {
 }
 
 $(function() {
-    <!-- TMPL_IF NAME="loggedinusername" -->$("span.clearall").html("<a id=\"CheckNone\" href=\"#\">"+_('Clear All')+"<\/a>|");
-    $("span.checkall").html("<a id=\"CheckAll\" href=\"#\">"+_('Select All')+"<\/a>");<!-- /TMPL_IF -->
-       $("a.print").show();
+    $("span.clearall").html("<a id=\"CheckNone\" href=\"#\">"+_('Clear All')+"<\/a>|");
+    $("span.checkall").html("<a id=\"CheckAll\" href=\"#\">"+_('Select All')+"<\/a>");
+  $("a.print").show();
     <!-- TMPL_IF NAME="RequestOnOpac" -->$("#placehold").html("<a href=\"#\" class=\"hold tag_hides\">"+_('Place Hold')+"<\/a>");
        $("a.hold").click(function(){
                 holdSelections();
@@ -83,7 +83,6 @@ $(function() {
        });<!-- /TMPL_IF -->
     $("#listcontents").tablesorter({
         widgets : ['zebra'],
-        <!-- TMPL_IF NAME="manageshelf" -->
           <!-- TMPL_IF NAME="authorsort" -->
           sortList: [[2,0]],
           <!-- TMPL_ELSIF NAME="yearsort" -->
@@ -92,16 +91,6 @@ $(function() {
           sortList: [[1,0]],
           <!-- /TMPL_IF -->
           headers: { 0: { sorter: false },1:{sorter: 'articles'}
-        <!-- TMPL_ELSE -->
-          <!-- TMPL_IF NAME="authorsort" -->
-          sortList: [[1,0]],
-          <!-- TMPL_ELSIF NAME="yearsort" -->
-          sortList: [[2,1]],
-          <!-- TMPL_ELSE -->
-          sortList: [[0,0]],
-          <!-- /TMPL_IF -->
-          headers: { 0:{sorter:'articles'}
-        <!-- /TMPL_IF -->
         }
     }); 
     $("#CheckAll").click(function(){
@@ -129,14 +118,14 @@ $(function() {
                var alertString2;
 
            if(f.addshelf.value.length ==0){
-                       _alertString += _("- You must enter a List Name\n");
+                       _alertString += _("- You must enter a List Name") + "\n";
                }
 
                if (_alertString.length==0) {
                        document.Aform.submit();
                } else {
-                       alertString2 = _("Form not submitted because of the following problem(s)\n");
-                       alertString2 += "------------------------------------------------------------------------------------\n\n";
+                       alertString2 = _("Form not submitted because of the following problem(s)");
+                       alertString2 += "\n------------------------------------------------------------------------------------\n\n";
                        alertString2 += _alertString;
                        alert(alertString2);
                }
@@ -196,13 +185,13 @@ $(function() {
             <!-- TMPL_IF NAME="viewshelf" --><!--  Viewing a particular shelf -->
               <h3><a href="/cgi-bin/koha/opac-shelves.pl">Lists</a> <img src="<!-- TMPL_VAR NAME="themelang" -->/../images/caret.gif" width="16" height="16" alt="&gt;" border="0" /> <em><!-- TMPL_VAR NAME="shelfname" ESCAPE="html" --></em></h3>
               <!-- TMPL_IF NAME="itemsloop" -->
-                  <div id="toolbar" class="list-actions">
-<!-- TMPL_IF NAME="loggedinusername" -->                    <span class="checkall"></span>
+                  <div id="toolbar" class="list-actions"> <span class="checkall"></span>
                     <span class="clearall"></span>
 
 <!-- TMPL_IF NAME="RequestOnOpac" -->
                       <span id="placehold"></span><!-- TMPL_UNLESS NAME="TagsEnabled" --> |<!-- /TMPL_UNLESS -->
 <!-- /TMPL_IF -->
+<!-- TMPL_IF NAME="loggedinusername" -->
     <!-- TMPL_IF NAME="TagsEnabled" -->
                     <span id="addtags"></span>               
                     <span id="tagsel_form" style="display:none">
@@ -218,8 +207,9 @@ $(function() {
 
 <span class="sendlist"><a href="/cgi-bin/koha/opac-sendshelf.pl?shelfid=<!-- TMPL_VAR NAME="shelfnumber" -->" class="send tag_hides" onclick="open(CGIBIN+'opac-sendshelf.pl?shelfid=<!-- TMPL_VAR NAME="shelfnumber" -->','win_form','dependant=yes,scrollbars=no,resizable=no,height=300,width=450,top=50,left=100'); return false; ">Send List</a></span>
 
+<a class="print tag_hides" href="opac-shelves.pl" onclick="print(); return false;">Print List</a>
 
-                <!-- TMPL_IF NAME="manageshelf" --><a class="editshelf tag_hides" href="/cgi-bin/koha/opac-shelves.pl?shelfnumber=<!-- TMPL_VAR NAME="shelfnumber" -->&amp;op=modif">Edit List</a>
+                <!-- TMPL_IF NAME="manageshelf" --> | <a class="editshelf tag_hides" href="/cgi-bin/koha/opac-shelves.pl?shelfnumber=<!-- TMPL_VAR NAME="shelfnumber" -->&amp;op=modif">Edit List</a>
                       <form method="post" action="opac-shelves.pl" class="tag_hides">
                         <input type="hidden" value="1" name="shelves"/>
                     <!-- TMPL_IF NAME="showprivateshelves" -->
@@ -229,20 +219,18 @@ $(function() {
                          <input type="submit" class="deleteshelf" value="Delete List" onclick="return confirmDelete(MSG_CONFIRM_DELETE_LIST);"/>
                       </form> <!-- /TMPL_IF -->
 
-                     <a class="print tag_hides" href="opac-shelves.pl" onclick="print(); return false;">Print List</a>
-<!-- TMPL_UNLESS NAME="loggedinusername" -->
-                               | <span><a class="login" href="/cgi-bin/koha/opac-user.pl">Log in</a> to place holds or add tags</span><!-- /TMPL_UNLESS -->
+
                   </div>
 
-                <!-- TMPL_IF NAME="manageshelf" -->
                   <form action="/cgi-bin/koha/opac-shelves.pl" method="post" name="myform" class="checkboxed">
+                <!-- TMPL_IF NAME="manageshelf" -->
                     <input type="hidden" name="viewshelf" value="<!-- TMPL_VAR NAME="shelfnumber" -->" />
                     <input type="hidden" name="modifyshelfcontents" value="1" />
                 <!-- /TMPL_IF -->
                 <!-- TMPL_VAR name='pagination_bar'-->
                 <table id="listcontents">
                   <thead><tr>
-                    <!-- TMPL_IF NAME="manageshelf" --><th>&nbsp;</th><!-- /TMPL_IF -->
+                    <th>&nbsp;</th>
                     <!-- TMPL_UNLESS NAME="item-level_itypes" --><th>Item Type</th><!-- /TMPL_UNLESS -->
                     <th>Title</th>
                     <th>Author</th>
@@ -256,10 +244,8 @@ $(function() {
                     <!-- TMPL_ELSE -->
                       <tr>
                     <!-- /TMPL_UNLESS -->
-                    <!-- TMPL_IF NAME="manageshelf" -->
                         <td><input type="checkbox" name="REM-<!-- TMPL_VAR NAME="biblionumber" -->"
                                    value="<!-- TMPL_VAR NAME="biblionumber">" /></td>
-                    <!-- /TMPL_IF -->
                     <!-- TMPL_UNLESS NAME="item-level_itypes" -->
                         <td>
                           <img src="<!-- TMPL_VAR NAME="imageurl" -->" alt="<!-- TMPL_VAR NAME="description" -->" title="<!-- TMPL_VAR NAME="description" -->" /><!-- TMPL_VAR NAME="description" -->
@@ -312,8 +298,8 @@ $(function() {
                   <input type="hidden" name="shelves" value="1" />
                   <input type="submit" class="icon delete" value="Delete this List" onclick="return confirmDelete(MSG_CONFIRM_DELETE_LIST)" />
               <!-- /TMPL_IF -->
-                </form>
             <!-- /TMPL_IF -->
+                </form>
 
             
             <!-- TMPL_IF NAME="edit" -->
@@ -423,7 +409,7 @@ $(function() {
                     <!-- TMPL_ELSE -->
                          No Private Lists.
                     <!-- /TMPL_IF --><!-- /shelveslooppriv -->
-                  <!-- /TMPL_IF --><! -- /showprivateshelves -->
+                  <!-- /TMPL_IF --><!-- /showprivateshelves -->
                   <!-- TMPL_ELSE --><!-- /loggedinusername -->
                       <div><a href="/cgi-bin/koha/opac-user.pl">Log in</a> to create new Lists.</div>
                   <!-- /TMPL_IF --><!-- /loggedinusername -->
index dfbd432..ab5b753 100644 (file)
@@ -48,14 +48,14 @@ $.tablesorter.addParser({
                var alertString2;
 
            if(f.title.value.length ==0){
-                       _alertString += _("- You must enter a Title\n");
+                       _alertString += _("- You must enter a Title") + "\n";
                }
 
                if (_alertString.length==0) {
                        f.submit();
                } else {
-                       alertString2 = _("Form not submitted because of the following problem(s)\n");
-                       alertString2 += "------------------------------------------------------------------------------------\n\n";
+                       alertString2 = _("Form not submitted because of the following problem(s)");
+                       alertString2 += "\n------------------------------------------------------------------------------------\n\n";
                        alertString2 += _alertString;
                        alert(alertString2);
                }
index 62ec6be..bb0a473 100644 (file)
@@ -31,8 +31,8 @@
        <input type="text" name="address" value="<!-- TMPL_VAR NAME="address" -->" id="address" />
        <input type="text" name="address2" value="<!-- TMPL_VAR NAME="address2" -->" id="address2" /></li>
 <li><label for="city">City, State:</label> <input id="city" type="text" value="<!-- TMPL_VAR name="city" -->"  name="city" /></li>
-<li><label for="zipcode">Zip Code: </label><input id="zipcode" name="zipcode" value="<!-- TMPL_VAR NAME="zipcode" -->" name="zipcode" /></li>
-<li><label for="country">Country: </label><input id="country" name="country" value="<!-- TMPL_VAR NAME="country" -->" name="country" /></li>
+<li><label for="zipcode">Zip Code: </label><input id="zipcode" value="<!-- TMPL_VAR NAME="zipcode" -->" name="zipcode" /></li>
+<li><label for="country">Country: </label><input id="country" value="<!-- TMPL_VAR NAME="country" -->" name="country" /></li>
 <li><label for="phone">Home Phone:</label> <input id="phone" type="text" value="<!-- TMPL_VAR name="phone" -->"  name="phone" /></li>
 <li><label for="mobile">Mobile Phone:</label> <input id="mobile" type="text" value="<!-- TMPL_VAR name="mobile" -->"  name="mobile" /></li>
 <li><label for="phonepro">Work phone:</label> <input id="phonepro"  type="text" value="<!-- TMPL_VAR name="phonepro" -->"  name="phonepro" /></li>
 </li>
 
 <li><label for="B_city">City, State:</label> <input id="B_city" type="text" value="<!-- TMPL_VAR name="B_city" -->"  name="B_city" /></li>
-<li><label for="B_zipcode">Zip Code:</label> <input type="text" id="B_zipcode" name="B_zipcode" value="<!-- TMPL_VAR NAME="B_zipcode" -->" name="B_zipcode" /></li>
-<li><label for="B_country">Country:</label> <input type="text" id="B_country" name="B_country" value="<!-- TMPL_VAR NAME="B_country" -->" name="B_country" /></li>
-<li><label for="B_phone">Phone:</label> <input type="text" id="B_phone" name="B_phone" value="<!-- TMPL_VAR NAME="B_phone" -->" name="B_phone" /></li>
-<li><label for="B_email">Email:</label> <input type="text" id="B_email" name="B_email" value="<!-- TMPL_VAR NAME="B_email" -->" name="B_email" /></li>
+<li><label for="B_zipcode">Zip Code:</label> <input type="text" id="B_zipcode" value="<!-- TMPL_VAR NAME="B_zipcode" -->" name="B_zipcode" /></li>
+<li><label for="B_country">Country:</label> <input type="text" id="B_country" value="<!-- TMPL_VAR NAME="B_country" -->" name="B_country" /></li>
+<li><label for="B_phone">Phone:</label> <input type="text" id="B_phone" value="<!-- TMPL_VAR NAME="B_phone" -->" name="B_phone" /></li>
+<li><label for="B_email">Email:</label> <input type="text" id="B_email" value="<!-- TMPL_VAR NAME="B_email" -->" name="B_email" /></li>
 </ol>
 </fieldset>
 <fieldset class="brief">
index 2cde9f6..1f8e897 100644 (file)
                 <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=an:<xsl:value-of select="marc:subfield[@code=9]"/></xsl:attribute>
             </xsl:when>
             <xsl:otherwise>
-            <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=au:<xsl:value-of select="marc:subfield[@code='a']"/></xsl:attribute>      
+            <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=au:<xsl:value-of select="marc:subfield[@code='a']"/></xsl:attribute>
             </xsl:otherwise>
         </xsl:choose>
         <xsl:call-template name="nameABCDN"/></a>
 <xsl:if test="$ShowISBD!='0'">
         <span class="view"><a id="ISBDview" href="/cgi-bin/koha/opac-ISBDdetail.pl?biblionumber={marc:datafield[@tag=999]/marc:subfield[@code='c']}">Card View (ISBD)</a></span>
 </xsl:if>
-        </div> 
+        </div>
 
    <xsl:if test="$DisplayOPACiconsXSLT!='0'">
         <xsl:if test="$materialTypeCode!=''">
                 <xsl:with-param name="index">se</xsl:with-param>
             </xsl:call-template>
         </xsl:if>
-        
+
         <xsl:if test="marc:datafield[@tag=440 or @tag=490]">
         <span class="results_summary"><span class="label">Series: </span>
         <xsl:for-each select="marc:datafield[@tag=440]">
                 <xsl:with-param name="label">Publisher: </xsl:with-param>
             </xsl:call-template>
         </xsl:if>
-        
+
         <xsl:if test="marc:datafield[@tag=260]">
         <span class="results_summary"><span class="label">Publisher: </span>
             <xsl:for-each select="marc:datafield[@tag=260]">
                </xsl:call-template>
                     <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
             </xsl:for-each>
-        </span> 
+        </span>
         </xsl:if>
 
         <!-- Edition Statement: Alternate Graphic Representation (MARC 880) -->
                 <xsl:with-param name="label">Edition: </xsl:with-param>
             </xsl:call-template>
         </xsl:if>
-        
+
         <xsl:if test="marc:datafield[@tag=250]">
         <span class="results_summary"><span class="label">Edition: </span>
             <xsl:for-each select="marc:datafield[@tag=250]">
                 <xsl:with-param name="label">Description: </xsl:with-param>
             </xsl:call-template>
         </xsl:if>
-        
+
         <xsl:if test="marc:datafield[@tag=300]">
         <span class="results_summary"><span class="label">Description: </span>
             <xsl:for-each select="marc:datafield[@tag=300]">
             <xsl:call-template name="chopPunctuation">
                 <xsl:with-param name="chopString">
                     <xsl:value-of select="substring($str,1,string-length($str)-1)"/>
-                        
+
                 </xsl:with-param>
             </xsl:call-template>
             <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
         </xsl:if>
         <xsl:if test="marc:datafield[@tag=505]">
         <xsl:for-each select="marc:datafield[@tag=505]">
-        <span class="results_summary"><span class="label">
+        <span class="results_summary">
         <xsl:choose>
         <xsl:when test="@ind1=1">
-            Incomplete contents:
+            <span class="label">Incomplete contents:</span>
         </xsl:when>
         <xsl:when test="@ind1=1">
-            Partial contents:
+            <span class="label">Partial contents:</span>
         </xsl:when>
         <xsl:otherwise>
-            Contents:
+            <span class="label">Contents:</span>
         </xsl:otherwise>
-        </xsl:choose>  
-        </span>
+        </xsl:choose>
         <xsl:choose>
         <xsl:when test="@ind2=0">
             <xsl:for-each select="marc:subfield[@code='t']">
                 <xsl:value-of select="marc:subfield[@code=t]"/> <xsl:value-of select="marc:subfield[@code=r]"/>
-            </xsl:for-each> 
+            </xsl:for-each>
         </xsl:when>
         <xsl:otherwise>
             <xsl:call-template name="subfieldSelect">
                 <xsl:value-of select="translate($f773, '()', '')"/>
             </a>
         </span>
+
             <span class="results_summary"><xsl:value-of select="marc:subfield[@code='n']"/></span>
 
         </xsl:if>
         <xsl:if test="marc:datafield[@tag=780]">
         <xsl:for-each select="marc:datafield[@tag=780]">
         <xsl:if test="@ind1=0">
-        <span class="results_summary"><span class="label">
+        <span class="results_summary">
         <xsl:choose>
         <xsl:when test="@ind2=0">
-            Continues:
+            <span class="label">Continues:</span>
         </xsl:when>
         <xsl:when test="@ind2=1">
-            Continues in part:
+            <span class="label">Continues in part:</span>
         </xsl:when>
         <xsl:when test="@ind2=2">
-            Supersedes:
+            <span class="label">Supersedes:</span>
         </xsl:when>
         <xsl:when test="@ind2=3">
-            Supersedes in part:
+            <span class="label">Supersedes in part:</span>
         </xsl:when>
         <xsl:when test="@ind2=4">
-            Formed by the union: ... and: ...
+            <span class="label">Formed by the union: ... and: ...</span>
         </xsl:when>
         <xsl:when test="@ind2=5">
-            Absorbed:
+            <span class="label">Absorbed:</span>
         </xsl:when>
         <xsl:when test="@ind2=6">
-            Absorbed in part:
+            <span class="label">Absorbed in part:</span>
         </xsl:when>
         <xsl:when test="@ind2=7">
-            Separated from:
+            <span class="label">Separated from:</span>
         </xsl:when>
         </xsl:choose>
-        </span>
                 <xsl:variable name="f780">
                     <xsl:call-template name="subfieldSelect">
                         <xsl:with-param name="codes">at</xsl:with-param>
                 <xsl:value-of select="translate($f780, '()', '')"/>
             </a>
         </span>
+
         <span class="results_summary"><xsl:value-of select="marc:subfield[@code='n']"/></span>
 
         </xsl:if>
         <xsl:if test="marc:datafield[@tag=785]">
         <xsl:for-each select="marc:datafield[@tag=785]">
         <xsl:if test="@ind1=0">
-        <span class="results_summary"><span class="label">
+        <span class="results_summary">
         <xsl:choose>
         <xsl:when test="@ind2=0">
-            Continued by:
+            <span class="label">Continued by:</span>
         </xsl:when>
         <xsl:when test="@ind2=1">
-            Continued in part by:
+            <span class="label">Continued in part by:</span>
         </xsl:when>
         <xsl:when test="@ind2=2">
-            Superseded by:
+            <span class="label">Superseded by:</span>
         </xsl:when>
         <xsl:when test="@ind2=3">
-            Superseded in part by:
+            <span class="label">Superseded in part by:</span>
         </xsl:when>
         <xsl:when test="@ind2=4">
-            Absorbed by:
+            <span class="label">Absorbed by:</span>
         </xsl:when>
         <xsl:when test="@ind2=5">
-            Absorbed in part by:
+            <span class="label">Absorbed in part by:</span>
         </xsl:when>
         <xsl:when test="@ind2=6">
-            Split into .. and ...:
+            <span class="label">Split into .. and ...:</span>
         </xsl:when>
         <xsl:when test="@ind2=7">
-            Merged with ... to form ...
+            <span class="label">Merged with ... to form ...</span>
         </xsl:when>
         <xsl:when test="@ind2=8">
-            Changed back to:
+            <span class="label">Changed back to:</span>
         </xsl:when>
 
         </xsl:choose>
-        </span>
                    <xsl:variable name="f785">
                     <xsl:call-template name="subfieldSelect">
                         <xsl:with-param name="codes">at</xsl:with-param>
index 3683246..26aed37 100644 (file)
@@ -16,7 +16,7 @@
   <xsl:variable name="leader6" select="substring($leader,7,1)"/>
   <xsl:variable name="leader7" select="substring($leader,8,1)"/>
   <xsl:variable name="biblionumber" select="marc:datafield[@tag=090]/marc:subfield[@code='a']"/>
-  
+
 
   <xsl:if test="marc:datafield[@tag=200]">
     <xsl:for-each select="marc:datafield[@tag=200]">
@@ -63,7 +63,7 @@
       <a id="ISBDview" href="/cgi-bin/koha/opac-ISBDdetail.pl?biblionumber={marc:datafield[@tag=090]/marc:subfield[@code='a']}">Card View (ISBD)</a>
     </span>
   </div>
-  
+
   <xsl:call-template name="tag_4xx" />
 
   <xsl:call-template name="tag_7xx">
     <span class="results_summary">
       <span class="label">Note sur la provenance: </span>
       <xsl:for-each select="marc:datafield[@tag=317]">
-          <xsl:value-of select="marc:subfield[@code='a']"/>      
+          <xsl:value-of select="marc:subfield[@code='a']"/>
       </xsl:for-each>
     </span>
   </xsl:if>
     <span class="results_summary">
       <span class="label">SUDOC serial history: </span>
       <xsl:for-each select="marc:datafield[@tag=955]">
-        <xsl:value-of select="marc:subfield[@code='9']"/>: 
+        <xsl:value-of select="marc:subfield[@code='9']"/>:
         <xsl:value-of select="marc:subfield[@code='r']"/>
         <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
       </xsl:for-each>
     <span class="results_summary">
       <span class="label">SUDOC serial history: </span>
       <xsl:for-each select="marc:datafield[@tag=955]">
-        <xsl:value-of select="marc:subfield[@code='9']"/>: 
+        <xsl:value-of select="marc:subfield[@code='9']"/>:
         <xsl:value-of select="marc:subfield[@code='r']"/>
         <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
       </xsl:for-each>
         <xsl:choose>
           <xsl:when test="position()=last()"></xsl:when>
           <xsl:otherwise> | </xsl:otherwise>
-        </xsl:choose>      
+        </xsl:choose>
       </xsl:for-each>
     </span>
   </xsl:if>
         <!-- 780 -->
         <xsl:if test="marc:datafield[@tag=780]">
         <xsl:for-each select="marc:datafield[@tag=780]">
-        <span class="results_summary"><span class="label">
+        <span class="results_summary">
         <xsl:choose>
         <xsl:when test="@ind2=0">
-            Continues:
+            <span class="label">Continues:</span>
         </xsl:when>
         <xsl:when test="@ind2=1">
-            Continues in part:
+            <span class="label">Continues in part:</span>
         </xsl:when>
         <xsl:when test="@ind2=2">
-            Supersedes:
+            <span class="label">Supersedes:</span>
         </xsl:when>
         <xsl:when test="@ind2=3">
-            Supersedes in part:
+            <span class="label">Supersedes in part:</span>
         </xsl:when>
         <xsl:when test="@ind2=4">
-            Formed by the union: ... and: ...
+            <span class="label">Formed by the union: ... and: ...</span>
         </xsl:when>
         <xsl:when test="@ind2=5">
-            Absorbed:
+            <span class="label">Absorbed:</span>
         </xsl:when>
         <xsl:when test="@ind2=6">
-            Absorbed in part:
+            <span class="label">Absorbed in part:</span>
         </xsl:when>
         <xsl:when test="@ind2=7">
-            Separated from:
+            <span class="label">Separated from:</span>
         </xsl:when>
         </xsl:choose>
-        </span>
                 <xsl:variable name="f780">
                     <xsl:call-template name="subfieldSelect">
                         <xsl:with-param name="codes">at</xsl:with-param>
                 <xsl:value-of select="translate($f780, '()', '')"/>
             </a>
         </span>
+
         <xsl:choose>
         <xsl:when test="@ind1=0">
             <span class="results_summary"><xsl:value-of select="marc:subfield[@code='n']"/></span>
         <!-- 785 -->
         <xsl:if test="marc:datafield[@tag=785]">
         <xsl:for-each select="marc:datafield[@tag=785]">
-        <span class="results_summary"><span class="label">
+        <span class="results_summary">
         <xsl:choose>
         <xsl:when test="@ind2=0">
-            Continued by:
+            <span class="label">Continued by:</span>
         </xsl:when>
         <xsl:when test="@ind2=1">
-            Continued in part by:
+            <span class="label">Continued in part by:</span>
         </xsl:when>
         <xsl:when test="@ind2=2">
-            Superseded by:
+            <span class="label">Superseded by:</span>
         </xsl:when>
         <xsl:when test="@ind2=3">
-            Superseded in part by:
+            <span class="label">Superseded in part by:</span>
         </xsl:when>
         <xsl:when test="@ind2=4">
-            Absorbed by:
+            <span class="label">Absorbed by:</span>
         </xsl:when>
         <xsl:when test="@ind2=5">
-            Absorbed in part by:
+            <span class="label">Absorbed in part by:</span>
         </xsl:when>
         <xsl:when test="@ind2=6">
-            Split into .. and ...:
+            <span class="label">Split into .. and ...:</span>
         </xsl:when>
         <xsl:when test="@ind2=7">
-            Merged with ... to form ...
+            <span class="label">Merged with ... to form ...</span>
         </xsl:when>
         <xsl:when test="@ind2=8">
-            Changed back to:
+            <span class="label">Changed back to:</span>
         </xsl:when>
 
         </xsl:choose>
-        </span>
                    <xsl:variable name="f785">
                     <xsl:call-template name="subfieldSelect">
                         <xsl:with-param name="codes">at</xsl:with-param>
diff --git a/koha-tmpl/opac-tmpl/prog/en/xslt/compact.xsl b/koha-tmpl/opac-tmpl/prog/en/xslt/compact.xsl
new file mode 100644 (file)
index 0000000..43d7f53
--- /dev/null
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+  
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns="http://www.w3.org/1999/xhtml"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xmlns:marc="http://www.loc.gov/MARC21/slim" 
+  exclude-result-prefixes="xsi marc"
+  version="1.0">
+  <xsl:output method="xml" version="1.0" encoding="UTF-8" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" />    
+      <xsl:template match="/">
+        <html>
+          <head>
+           <title>MARC Card View</title>
+          </head>
+          <body>
+           <xsl:apply-templates/>
+          </body>
+        </html>
+      </xsl:template>
+      
+      <xsl:template match="marc:record">
+        <div class="cardimage">
+        <xsl:apply-templates select="marc:datafield[@tag!='082' and @tag!='092' and @tag!='010']"/>
+        <span class="bottom">
+          <xsl:apply-templates select="marc:controlfield[@tag='001']"/>
+          <xsl:apply-templates select="marc:datafield[@tag='082' or @tag='092' or @tag='010']"/>
+        </span>
+        </div>
+      </xsl:template>
+      
+      <xsl:template match="marc:controlfield">
+          <span class="oclc">#<xsl:value-of select="substring(.,4)"/></span>
+      </xsl:template>
+      
+      <xsl:template match="marc:datafield">
+        <xsl:if test="starts-with(@tag, '1')">
+          <p class="mainheading"><xsl:value-of select="."/></p>
+        </xsl:if>
+        <xsl:if test="starts-with(@tag, '24') and /marc:record/marc:datafield[@tag='100']">
+          <span class="title"><xsl:value-of select="."/></span>
+        </xsl:if>
+        <xsl:if test="starts-with(@tag, '24') and not(/marc:record/marc:datafield[@tag='100'])">
+          <span class="titlemain"><xsl:value-of select="."/></span><br/>
+        </xsl:if>
+        <xsl:if test="@tag='260'">
+          <xsl:value-of select="."/>
+        </xsl:if>
+        <xsl:if test="@tag='300'">
+          <p class="extent"><xsl:value-of select="."/></p>
+        </xsl:if>
+        <xsl:if test="starts-with(@tag, '5')">
+          <p class="note"><xsl:value-of select="."/></p>
+        </xsl:if>
+        <xsl:if test="@tag='650'">
+          <span class='counter'><xsl:number count="marc:datafield[@tag='650']"/>.</span> <xsl:apply-templates select="marc:subfield"/>
+        </xsl:if>
+        <xsl:if test="@tag='653'">
+          <span class="counter"><xsl:number format="i" count="marc:datafield[@tag='653']"/>.</span> <xsl:apply-templates select="marc:subfield"/>
+        </xsl:if>
+        <xsl:if test="@tag='010'">
+          <xsl:variable name="LCCN.nospace" select="translate(., ' ', '')"/>
+          <xsl:variable name="LCCN.length" select="string-length($LCCN.nospace)"/>
+          <xsl:variable name="LCCN.display" select="concat(substring($LCCN.nospace, 1, $LCCN.length - 6), '-', format-number(substring($LCCN.nospace, $LCCN.length - 5),'#'))"/>
+          <span class="LCCN">LCCN:<xsl:value-of select="$LCCN.display"/></span>
+        </xsl:if>
+        <xsl:if test="@tag='082' or @tag='092'">
+          <span class="DDC"><xsl:value-of select="marc:subfield[@code='a']"/></span>
+        </xsl:if>
+        <xsl:if test="@tag='856'">
+          <br/><xsl:apply-templates mode="link" select="marc:subfield" />
+        </xsl:if>
+      </xsl:template>
+      <xsl:template match="marc:subfield" mode="link">
+        <xsl:if test="@code='u'">
+          <span class="link">
+            <a class="url" href="{.}"/>
+        </span>
+        </xsl:if>
+      </xsl:template>
+      <xsl:template match="marc:subfield">
+        <xsl:if test="@code!='2'">    
+        <xsl:if test="@code!='a'">--</xsl:if>
+        <xsl:value-of select="."/>
+      </xsl:if>
+      </xsl:template>
+    </xsl:stylesheet>
index 3fa5030..c44d78b 100644 (file)
@@ -10,7 +10,9 @@
 use strict;
 
 sub kohaversion {
-    our $VERSION = '3.01.00.136';
+
+    our $VERSION = '3.01.00.139';
+
     # version needs to be set this way
     # so that it can be picked up by Makefile.PL
     # during install
index 749cecc..321e526 100755 (executable)
@@ -66,19 +66,17 @@ if ($input->param('newflags')) {
     $sth = $dbh->prepare("UPDATE borrowers SET flags=? WHERE borrowernumber=?");
     $sth->execute($module_flags, $member);
     
-    if (C4::Context->preference('GranularPermissions')) {
-        # deal with subpermissions
-        $sth = $dbh->prepare("DELETE FROM user_permissions WHERE borrowernumber = ?");
-        $sth->execute($member); 
-        $sth = $dbh->prepare("INSERT INTO user_permissions (borrowernumber, module_bit, code)
-                            SELECT ?, bit, ?
-                            FROM userflags
-                            WHERE flag = ?");
-        foreach my $module (keys %sub_perms) {
-            next if exists $all_module_perms{$module};
-            foreach my $sub_perm (@{ $sub_perms{$module} }) {
-                $sth->execute($member, $sub_perm, $module);
-            }
+    # deal with subpermissions
+    $sth = $dbh->prepare("DELETE FROM user_permissions WHERE borrowernumber = ?");
+    $sth->execute($member); 
+    $sth = $dbh->prepare("INSERT INTO user_permissions (borrowernumber, module_bit, code)
+                        SELECT ?, bit, ?
+                        FROM userflags
+                        WHERE flag = ?");
+    foreach my $module (keys %sub_perms) {
+        next if exists $all_module_perms{$module};
+        foreach my $sub_perm (@{ $sub_perms{$module} }) {
+            $sth->execute($member, $sub_perm, $module);
         }
     }
     
@@ -104,53 +102,51 @@ if ($input->param('newflags')) {
                    checked => $checked,
                    flagdesc => $flagdesc );
 
-        if (C4::Context->preference('GranularPermissions')) {
-            my @sub_perm_loop = ();
-            my $expand_parent = 0;
-            if ($checked) {
-                if (exists $all_perms->{$flag}) {
-                    $expand_parent = 1;
-                    foreach my $sub_perm (sort keys %{ $all_perms->{$flag} }) {
-                        push @sub_perm_loop, {
-                            id => "${flag}_$sub_perm",
-                            perm => "$flag:$sub_perm",
-                            code => $sub_perm,
-                            description => $all_perms->{$flag}->{$sub_perm},
-                            checked => 1
-                        };
-                    }
+        my @sub_perm_loop = ();
+        my $expand_parent = 0;
+        if ($checked) {
+            if (exists $all_perms->{$flag}) {
+                $expand_parent = 1;
+                foreach my $sub_perm (sort keys %{ $all_perms->{$flag} }) {
+                    push @sub_perm_loop, {
+                        id => "${flag}_$sub_perm",
+                        perm => "$flag:$sub_perm",
+                        code => $sub_perm,
+                        description => $all_perms->{$flag}->{$sub_perm},
+                        checked => 1
+                    };
                 }
-            } else {
-                if (exists $user_perms->{$flag}) {
-                    $expand_parent = 1;
-                    # put selected ones first
-                    foreach my $sub_perm (sort keys %{ $user_perms->{$flag} }) {
-                        push @sub_perm_loop, {
-                            id => "${flag}_$sub_perm",
-                            perm => "$flag:$sub_perm",
-                            code => $sub_perm,
-                            description => $all_perms->{$flag}->{$sub_perm},
-                            checked => 1
-                        };
-                    }
+            }
+        } else {
+            if (exists $user_perms->{$flag}) {
+                $expand_parent = 1;
+                # put selected ones first
+                foreach my $sub_perm (sort keys %{ $user_perms->{$flag} }) {
+                    push @sub_perm_loop, {
+                        id => "${flag}_$sub_perm",
+                        perm => "$flag:$sub_perm",
+                        code => $sub_perm,
+                        description => $all_perms->{$flag}->{$sub_perm},
+                        checked => 1
+                    };
                 }
-                # then ones not selected
-                if (exists $all_perms->{$flag}) {
-                    foreach my $sub_perm (sort keys %{ $all_perms->{$flag} }) {
-                        push @sub_perm_loop, {
-                            id => "${flag}_$sub_perm",
-                            perm => "$flag:$sub_perm",
-                            code => $sub_perm,
-                            description => $all_perms->{$flag}->{$sub_perm},
-                            checked => 0
-                        } unless exists $user_perms->{$flag} and exists $user_perms->{$flag}->{$sub_perm};
-                    }
+            }
+            # then ones not selected
+            if (exists $all_perms->{$flag}) {
+                foreach my $sub_perm (sort keys %{ $all_perms->{$flag} }) {
+                    push @sub_perm_loop, {
+                        id => "${flag}_$sub_perm",
+                        perm => "$flag:$sub_perm",
+                        code => $sub_perm,
+                        description => $all_perms->{$flag}->{$sub_perm},
+                        checked => 0
+                    } unless exists $user_perms->{$flag} and exists $user_perms->{$flag}->{$sub_perm};
                 }
             }
-            $row{expand} = $expand_parent;
-            if ($#sub_perm_loop > -1) {
+        }
+        $row{expand} = $expand_parent;
+        if ($#sub_perm_loop > -1) {
             $row{sub_perm_loop} = \@sub_perm_loop;
-            }
         }
            push @loop, \%row;
     }
index b4a4d3a..9b5c031 100755 (executable)
@@ -75,7 +75,10 @@ $template->param( 'ItemsIssued' => CountItemsIssued( $biblionumber ) );
 
 my $marcflavour      = C4::Context->preference("marcflavour");
 my $record = GetMarcBiblio($biblionumber);
-
+if ( ! $record ) {
+    print $query->redirect("/cgi-bin/koha/errors/404.pl");
+    exit;
+}
 # some useful variables for enhanced content;
 # in each case, we're grabbing the first value we find in
 # the record and normalizing it
index 132d5a6..fae749c 100755 (executable)
@@ -60,7 +60,10 @@ my $itemtype     = &GetFrameworkCode($biblionumber);
 my $tagslib      = &GetMarcStructure( 0, $itemtype );
 my $biblio = GetBiblioData($biblionumber);
 my $record = GetMarcBiblio($biblionumber);
-
+if ( ! $record ) {
+    print $query->redirect("/cgi-bin/koha/errors/404.pl");
+    exit;
+}
 # open template
 my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
     {
index c2f1722..7eb934e 100755 (executable)
@@ -64,7 +64,7 @@ if ($importid) {
                
 if ($view eq 'card') {
 $xmlrecord = GetXmlBiblio($biblionumber) unless $xmlrecord;
-my $xslfile = C4::Context->config('intranetdir')."/koha-tmpl/intranet-tmpl/prog/en/xslt/compact.xsl";
+my $xslfile = C4::Context->config('opachtdocs')."/prog/en/xslt/compact.xsl";
 my $parser = XML::LibXML->new();
 my $xslt   = XML::LibXSLT->new();
 my $source = $parser->parse_string($xmlrecord);
index 704da10..859a65b 100755 (executable)
@@ -479,7 +479,7 @@ foreach my $biblionumber (@biblionumbers) {
                 );
         }
         
-        if ( defined $res->{'found'} && $res->{'found'} eq 'W' ) {
+        if ( defined $res->{'found'} && $res->{'found'} eq 'W' || $res->{'found'} eq 'T' ) {
             my $item = $res->{'itemnumber'};
             $item = GetBiblioFromItemNumber($item,undef);
             $reserve{'wait'}= 1; 
@@ -494,6 +494,7 @@ foreach my $biblionumber (@biblionumbers) {
             }
             # set found to 1 if reserve is waiting for patron pickup
             $reserve{'found'} = 1 if $res->{'found'} eq 'W';
+            $reserve{'intransit'} = 1 if $res->{'found'} eq 'T';
         } elsif ($res->{priority} > 0) {
             if (defined($res->{itemnumber})) {
                 my $item = GetItem($res->{itemnumber});
index f5b216f..e671e96 100755 (executable)
@@ -55,7 +55,7 @@ my ($template, $loggedinuser, $cookie)
                  query => $query,
                  type => "intranet",
                  authnotrequired => 0,
-                 flagsrequired => {serials => 1},
+                 flagsrequired => {serials => '*'},
                  debug => 1,
                  });
 
index 113e763..1e5d917 100755 (executable)
@@ -32,7 +32,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
         query           => $query,
         type            => "intranet",
         authnotrequired => 0,
-        flagsrequired   => { serials => 1 },
+        flagsrequired   => { serials => '*' },
         debug           => 1,
     }
 );
index 16529b0..02a4fbc 100755 (executable)
@@ -60,7 +60,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user (
         query           => $query,
         type            => "intranet",
         authnotrequired => 0,
-        flagsrequired   => { serials => 1 },
+        flagsrequired   => { serials => 'check_expiration' },
         debug           => 1,
     }
 );
index af0143d..b723136 100755 (executable)
@@ -49,7 +49,7 @@ my ($template, $loggedinuser, $cookie)
             query => $input,
             type => 'intranet',
             authnotrequired => 0,
-            flagsrequired => {serials => 1},
+            flagsrequired => {serials => 'claim_serials'},
             debug => 1,
             });
 
index 2d9a031..f18c2f3 100755 (executable)
@@ -43,6 +43,8 @@ foreach (keys %$patron){
 
 my @categories=C4::Category->all;
 my $branches=(defined $$patron{branchcode}?GetBranchesLoop($$patron{branchcode}):GetBranchesLoop());
+my $subscriptionid = $cgi->param('subscriptionid');
+my $searchstring   = $cgi->param('member');
 
 my %categories_dislay;
 my ($template, $loggedinuser, $cookie);
@@ -51,7 +53,7 @@ my ($template, $loggedinuser, $cookie);
                  query => $cgi,
                  type => "intranet",
                  authnotrequired => 0,
-                 flagsrequired => {borrowers => 1},
+                 flagsrequired => { serials => 'routing' },
                  });
 
 foreach my $category (@categories){
index 716cced..477ae81 100755 (executable)
@@ -100,7 +100,7 @@ if($ok){
                                query => $query,
                                type => "intranet",
                                authnotrequired => 0,
-                               flagsrequired => {serials => 1},
+                               flagsrequired => {serials => 'routing'},
                                debug => 1,
                                });
     $template->param("libraryname"=>$branchname);
@@ -110,7 +110,7 @@ if($ok){
                                query => $query,
                                type => "intranet",
                                authnotrequired => 0,
-                               flagsrequired => {serials => 1},
+                               flagsrequired => {serials => 'routing'},
                                debug => 1,
                                });
 }
index 524c71d..18519e3 100755 (executable)
@@ -90,7 +90,7 @@ my ($template, $loggedinuser, $cookie)
                                query => $query,
                                type => "intranet",
                                authnotrequired => 0,
-                               flagsrequired => {serials => 1},
+                               flagsrequired => {serials => 'routing'},
                                debug => 1,
                                });
 
index 4eb53c3..4a971b5 100755 (executable)
@@ -71,7 +71,7 @@ if ($selectview eq "full"){
      query => $query,
      type => "intranet",
      authnotrequired => 0,
-        flagsrequired => {serials => 1},
+        flagsrequired => {serials => '*'},
      debug => 1,
      });
 
index e6d737b..23e2abc 100755 (executable)
@@ -40,7 +40,7 @@ my ($template, $loggedinuser, $cookie);
                             query => $query,
                             type => "intranet",
                             authnotrequired => 0,
-                            flagsrequired => {serials => 1},
+                            flagsrequired => {serials => 'receive_serials'},
                             debug => 1,
                             });
 my $biblionumber = $query->param('biblionumber');
index b407ca9..dee624c 100755 (executable)
@@ -108,14 +108,15 @@ unless ( scalar(@serialids) ) {
 
     print $query->redirect($string);
 }
+
 my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
     {
-        template_name   => "serials/serials-edit.tmpl",
-        query           => $query,
-        type            => "intranet",
-        authnotrequired => 0,
-        flagsrequired   => { serials => 1 },
-        debug           => 1,
+       template_name   => "serials/serials-edit.tmpl",
+       query           => $query,
+       type            => "intranet",
+       authnotrequired => 0,
+       flagsrequired   => {serials => 'receive_serials'},
+       debug           => 1,
     }
 );
 
index a4a7bd3..8a82df7 100755 (executable)
@@ -67,7 +67,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
         query           => $query,
         type            => "intranet",
         authnotrequired => 0,
-        flagsrequired   => { serials => 1 },
+        flagsrequired   => { serials => '*' },
         debug           => 1,
     }
 );
index bcbfbda..6d01c35 100755 (executable)
@@ -47,7 +47,7 @@ my ($template, $loggedinuser, $cookie)
                                query => $query,
                                type => "intranet",
                                authnotrequired => 0,
-                               flagsrequired => {serials => 1},
+                               flagsrequired => {serials => '*'},
                                debug => 1,
                                });
 
index f87dae5..d8c0ea3 100755 (executable)
@@ -39,12 +39,18 @@ my $op = $query->param('op') || '';
 my $dbh = C4::Context->dbh;
 my $sub_length;
 
+my @budgets;
+
+# Permission needed if it is a modification : edit_subscription
+# Permission needed otherwise (nothing or dup) : create_subscription
+my $permission = ($op eq "mod") ? "edit_subscription" : "create_subscription";
+
 my ($template, $loggedinuser, $cookie)
 = get_template_and_user({template_name => "serials/subscription-add.tmpl",
                                query => $query,
                                type => "intranet",
                                authnotrequired => 0,
-                               flagsrequired => {serials => 1},
+                               flagsrequired => {serials => $permission},
                                debug => 1,
                                });
 
index 90a4098..d1b0f63 100755 (executable)
@@ -122,8 +122,7 @@ if ($op eq "do_search" && $query) {
                 query => $input,
                 type => "intranet",
                 authnotrequired => 0,
-                flagsrequired => {serials => 1},
-                flagsrequired => {catalogue => 1},
+                flagsrequired => {catalogue => 1, serials => '*'},
                 debug => 1,
                 });
 
@@ -178,7 +177,17 @@ if ($op eq "do_search" && $query) {
                             numbers=>\@numbers,
                             );
 } # end of if ($op eq "do_search" & $query)
- else {
+else {
+    ($template, $loggedinuser, $cookie)
+        = get_template_and_user({template_name => "serials/subscription-bib-search.tmpl",
+                query => $input,
+                type => "intranet",
+                authnotrequired => 0,
+                flagsrequired => {catalogue => 1, serials => '*'},
+                debug => 1,
+                });
+    # load the itemtypes
+    my $itemtypes = GetItemTypes;
     my @itemtypesloop;
     if (!$advanced_search_types or $advanced_search_types eq 'itemtypes') {
        # load the itemtypes
@@ -219,7 +228,7 @@ if ($op eq "do_search" && $query) {
                 query => $input,
                 type => "intranet",
                 authnotrequired => 0,
-                flagsrequired => {catalogue => 1, serials=>1},
+                flagsrequired => {catalogue => 1, serials => '*'},
                 debug => 1,
                 });
 
index d8c44ee..b6538fe 100755 (executable)
@@ -35,12 +35,32 @@ my ($template, $loggedinuser, $cookie, $hemisphere);
 my $subscriptionid = $query->param('subscriptionid');
 my $subs = GetSubscription($subscriptionid);
 
+$subs->{enddate} = GetExpirationDate($subscriptionid);
+
+if ($op && $op eq 'del') {
+       if ($subs->{'cannotedit'}){
+               carp "Attempt to delete subscription $subscriptionid by ".C4::Context->userenv->{'id'}." not allowed";
+               print $query->redirect("/cgi-bin/koha/serials/subscription-detail.pl?subscriptionid=$subscriptionid");
+       }
+       DelSubscription($subscriptionid);
+       print "Content-Type: text/html\n\n<META HTTP-EQUIV=Refresh CONTENT=\"0; URL=serials-home.pl\"></html>";
+       exit;
+}
+my ($routing, @routinglist) = getroutinglist($subscriptionid);
+my ($totalissues,@serialslist) = GetSerials($subscriptionid);
+$totalissues-- if $totalissues; # the -1 is to have 0 if this is a new subscription (only 1 issue)
+# the subscription must be deletable if there is NO issues for a reason or another (should not happend, but...)
+
+# Permission needed if it is a deletion (del) : delete_subscription
+# Permission needed otherwise : *
+my $permission = ($op eq "del") ? "delete_subscription" : "*";
+
 ($template, $loggedinuser, $cookie)
 = get_template_and_user({template_name => "serials/subscription-detail.tmpl",
                 query => $query,
                 type => "intranet",
                 authnotrequired => 0,
-                flagsrequired => {serials => 1},
+                flagsrequired => {serials => $permission},
                 debug => 1,
                 });
 
index 02dce30..48861bc 100755 (executable)
@@ -69,7 +69,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
         query           => $query,
         type            => "intranet",
         authnotrequired => 0,
-        flagsrequired   => { serials => 1 },
+        flagsrequired   => { serials => 'renew_subscription' },
         debug           => 1,
     }
 );
index ad804f0..d2d1368 100755 (executable)
@@ -38,7 +38,7 @@ my ($template, $loggedinuser, $cookie)
                  query => $input,
                  type => "intranet",
                  authnotrequired => 0,
-                 flagsrequired => {serials => 1},
+                 flagsrequired => {serials => '*'},
                  debug => 1,
                  });
 
index 6fe714a..8622f6a 100755 (executable)
@@ -83,9 +83,9 @@ pref_$pref1=$value1&pref_$pref2=$value2
 
 Used to set several system preferences at once. Each preference you want to set
 should be sent prefixed with pref. If you wanted to turn off the
-GranularPermissions syspref, for instance, you would POST the following:
+virtualshelves syspref, for instance, you would POST the following:
 
-pref_GranularPermissions=0
+pref_virtualshelves=0
 
 =cut
 
diff --git a/t/Installer_pm.t b/t/Installer_pm.t
new file mode 100755 (executable)
index 0000000..4370174
--- /dev/null
@@ -0,0 +1,25 @@
+#!/usr/bin/perl
+#
+use strict;
+use warnings;
+
+use Test::More tests => 4;
+use Data::Dumper;
+
+BEGIN {
+    use_ok('C4::Installer::PerlModules');
+}
+
+my $obj = C4::Installer::PerlModules->new;
+
+isa_ok($obj,'C4::Installer::PerlModules');
+
+my $hash_ref = $obj->version_info(module => 'Test::More');
+
+my $control = $Test::More::VERSION;
+
+like($hash_ref->{'Test::More'}->{cur_ver}, qr/\d/, 'returns numeric version');
+
+ok($hash_ref->{'Test::More'}->{cur_ver} == $control, 'returns correct version');
+
+
index 310624f..abeaf15 100755 (executable)
@@ -226,8 +226,8 @@ my $authorised_values_sth = $dbh->prepare("SELECT authorised_value,lib FROM auth
 my $branches = GetBranchesLoop();  # build once ahead of time, instead of multiple times later.
 
 # Adding a default choice, in case the user does not want to modify the branch
-my @nochange_branch = { branchname => '', value => '', selected => 1 };
-unshift (@$branches, @nochange_branch);
+my $nochange_branch = { branchname => '', value => '', selected => 1 };
+unshift (@$branches, $nochange_branch);
 
 my $pref_itemcallnumber = C4::Context->preference('itemcallnumber');
 
@@ -280,8 +280,8 @@ foreach my $tag (sort keys %{$tagslib}) {
            foreach my $thisbranch (@$branches) {
                push @authorised_values, $thisbranch->{value};
                $authorised_lib{$thisbranch->{value}} = $thisbranch->{branchname};
-               $value = $thisbranch->{value} if $thisbranch->{selected};
            }
+        $value = "";
        }
        elsif ( $tagslib->{$tag}->{$subfield}->{authorised_value} eq "itemtypes" ) {
            push @authorised_values, "" unless ( $tagslib->{$tag}->{$subfield}->{mandatory} );
index 7e61524..377f451 100755 (executable)
@@ -24,12 +24,13 @@ use Test::More qw(no_plan);
 
 use C4::Context;
 
-my $root_dir = C4::Context->config( 'intranetdir' ) . '/installer/data/mysql';
+my $root_dir = 'installer/data/mysql';
 my $base_perms_file = "en/mandatory/userpermissions.sql";
 my @trans_perms_files = qw(
+    de-DE/mandatory/userpermissions.sql
     fr-FR/1-Obligatoire/userpermissions.sql
-    uk-UA/mandatory/userpermissions.sql
-    ru-RU/mandatory/userpermissions.sql
+    uk-UA/mandatory/permissions_and_user_flags.sql
+    ru-RU/mandatory/permissions_and_user_flags.sql
     pl-PL/mandatory/userpermissions.sql
 );
 
@@ -58,8 +59,11 @@ foreach my $file_name ( @trans_perms_files ) {
 sub get_perms_from_file {
     my $fh = shift;
     my %perm;
+    my $found_insert = 0;
     while ( <$fh> ) {
         next if /^--/; # Comment line
+        $found_insert = 1 if /insert\s+into/i and /permissions/i;
+        next unless $found_insert;
         #/VALUES.*\(\'([\w\-:]+)\'/;
         /,\s*\'(.*?)\'/;
         my $variable = $1;
index ab07e37..3d10218 100755 (executable)
@@ -24,12 +24,13 @@ use Test::More qw(no_plan);
 
 use C4::Context;
 
-my $root_dir = C4::Context->config( 'intranetdir' ) . '/installer/data/mysql';
+my $root_dir = 'installer/data/mysql';
 my $base_syspref_file = "en/mandatory/sysprefs.sql";
 my @trans_syspref_files = qw(
+    de-DE/mandatory/sysprefs.sql
     fr-FR/1-Obligatoire/unimarc_standard_systemprefs.sql
-    uk-UA/mandatory/system_preferences_optimal.sql
-    ru-RU/mandatory/system_preferences_optimal.sql
+    uk-UA/mandatory/system_preferences_full_optimal_for_install_only.sql
+    ru-RU/mandatory/system_preferences_full_optimal_for_install_only.sql
     pl-PL/mandatory/sysprefs.sql
 );
 
@@ -64,6 +65,8 @@ sub get_syspref_from_file {
         /\(\'([\w\-:]+)\'/;
         my $variable = $1;
         next unless $variable;
+        # lowercase syspref - at present, systempreference lookup is not case-sensitive
+        $variable = lc $variable;
         $syspref{$variable} = 1;
     }
     return \%syspref;