diff --git a/C4/UsageStats.pm b/C4/UsageStats.pm index cf8b98eb9d..c71f99bc19 100644 --- a/C4/UsageStats.pm +++ b/C4/UsageStats.pm @@ -23,6 +23,8 @@ use POSIX qw(strftime); use LWP::UserAgent; use JSON; +use Koha::Libraries; + =head1 NAME C4::UsageStats @@ -56,14 +58,24 @@ sub NeedUpdate { } sub BuildReport { - my $report = { - library => { - id => C4::Context->preference('UsageStatsID') || 0, + my $report; + my @libraries; + if( C4::Context->preference('UsageStatsLibrariesInfo') ) { + my $libraries = Koha::Libraries->search; + while ( my $library = $libraries->next ) { + push @libraries, { name => $library->branchname, url => $library->branchurl, country => $library->branchcountry, geolocation => $library->geolocation, }; + } + } + $report = { + installation => { + koha_id => C4::Context->preference('UsageStatsID') || 0, name => C4::Context->preference('UsageStatsLibraryName') || q||, url => C4::Context->preference('UsageStatsLibraryUrl') || q||, type => C4::Context->preference('UsageStatsLibraryType') || q||, country => C4::Context->preference('UsageStatsCountry') || q||, + geolocation => C4::Context->preference('UsageStatsGeolocation') || q||, }, + libraries => \@libraries, }; # Get database volumetry. @@ -351,8 +363,12 @@ sub ReportToCommunity { Content => $json, ); my $content = decode_json( $res->decoded_content ); - C4::Context->set_preference( 'UsageStatsID', - $content->{library}{id} ); + if ( $content->{koha_id} ) { + C4::Context->set_preference( 'UsageStatsID', $content->{koha_id} ); + } + if ( $content->{id} ) { + C4::Context->set_preference( 'UsageStatsPublicID', $content->{id} ); + } } =head2 _count diff --git a/Koha/Schema/Result/Branch.pm b/Koha/Schema/Result/Branch.pm index ec44cded06..414b734209 100644 --- a/Koha/Schema/Result/Branch.pm +++ b/Koha/Schema/Result/Branch.pm @@ -128,6 +128,12 @@ __PACKAGE__->table("branches"); data_type: 'text' is_nullable: 1 +=head2 geolocation + + data_type: 'varchar' + is_nullable: 1 + size: 255 + =cut __PACKAGE__->add_columns( @@ -171,6 +177,8 @@ __PACKAGE__->add_columns( { data_type => "mediumtext", is_nullable => 1 }, "opac_info", { data_type => "text", is_nullable => 1 }, + "geolocation", + { data_type => "varchar", is_nullable => 1, size => 255 }, ); =head1 PRIMARY KEY @@ -543,8 +551,8 @@ Composing rels: L -> categorycode __PACKAGE__->many_to_many("categorycodes", "branchrelations", "categorycode"); -# Created by DBIx::Class::Schema::Loader v0.07042 @ 2016-10-24 13:56:21 -# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:/9YwsU+GXK+fzc6IX2Tj5g +# Created by DBIx::Class::Schema::Loader v0.07042 @ 2017-02-06 10:07:25 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:aq4mf5Dwbd8ps9ANLy8DuQ # You can replace this text with custom code or comments, and it will be preserved on regeneration diff --git a/admin/usage_statistics.pl b/admin/usage_statistics.pl index 4573321758..01e002eda0 100755 --- a/admin/usage_statistics.pl +++ b/admin/usage_statistics.pl @@ -21,6 +21,7 @@ use CGI qw ( -utf8 ); use C4::Auth; use C4::Output; use Koha::DateUtils qw( dt_from_string output_pref ); +use Koha::Libraries; my $query = new CGI; my ( $template, $loggedinuser, $cookie ) = get_template_and_user( @@ -42,12 +43,21 @@ if ( $op eq 'update' ) { my $UsageStatsLibraryName = $query->param('UsageStatsLibraryName'); my $UsageStatsLibraryType = $query->param('UsageStatsLibraryType'); my $UsageStatsLibraryUrl = $query->param('UsageStatsLibraryUrl'); + my $UsageStatsLibrariesInfo = $query->param('UsageStatsLibrariesInfo'); + my $UsageStatsGeolocation = $query->param('UsageStatsGeolocation'); C4::Context->set_preference('UsageStats', $UsageStats); C4::Context->set_preference('UsageStatsCountry', $UsageStatsCountry); C4::Context->set_preference('UsageStatsLibraryName', $UsageStatsLibraryName); C4::Context->set_preference('UsageStatsLibraryType', $UsageStatsLibraryType); C4::Context->set_preference('UsageStatsLibraryUrl', $UsageStatsLibraryUrl); - + C4::Context->set_preference('UsageStatsLibrariesInfo', $UsageStatsLibrariesInfo); + C4::Context->set_preference('UsageStatsGeolocation', $UsageStatsGeolocation); + my $libraries = Koha::Libraries->search; + while ( my $library = $libraries->next ) { + if ( my $latlng = $query->param('geolocation_' . $library->branchcode) ) { + $library->geolocation( $latlng )->store; + } + } } if ( C4::Context->preference('UsageStatsLastUpdateTime') ) { @@ -55,4 +65,9 @@ if ( C4::Context->preference('UsageStatsLastUpdateTime') ) { $template->param(UsageStatsLastUpdateTime => output_pref($dt) ); } +my $libraries = Koha::Libraries->search; +$template->param( + libraries => $libraries, +); + output_html_with_http_headers $query, $cookie, $template->output; diff --git a/installer/data/mysql/atomicupdate/bug_18066.perl b/installer/data/mysql/atomicupdate/bug_18066.perl new file mode 100644 index 0000000000..4ad2fc817b --- /dev/null +++ b/installer/data/mysql/atomicupdate/bug_18066.perl @@ -0,0 +1,21 @@ +$DBversion = 'XXX'; +if( CheckVersion( $DBversion ) ) { + unless( column_exists( 'branches', 'geolocation' ) ) { + $dbh->do(q| + ALTER TABLE branches ADD COLUMN geolocation VARCHAR(255) DEFAULT NULL after opac_info + |); + } + + $dbh->do(q| + INSERT IGNORE INTO systempreferences (variable, value, options, explanation, type ) VALUES ('UsageStatsGeolocation', '', NULL, 'Geolocation of the main library', 'Free'); + |); + $dbh->do(q| + INSERT IGNORE INTO systempreferences (variable, value, options, explanation, type ) VALUES ('UsageStatsLibrariesInfo', '', NULL, 'Share libraries information', 'YesNo'); + |); + $dbh->do(q| + INSERT IGNORE INTO systempreferences (variable, value, options, explanation, type ) VALUES ('UsageStatsPublicID', '', NULL, 'Public ID for Hea website', 'Free'); + |); + + SetVersion( $DBversion ); + print "Upgrade to $DBversion done (Bug 18066 - Hea version 2)\n"; +} diff --git a/installer/data/mysql/sysprefs.sql b/installer/data/mysql/sysprefs.sql index 79229d7f95..eaf856a44a 100644 --- a/installer/data/mysql/sysprefs.sql +++ b/installer/data/mysql/sysprefs.sql @@ -541,10 +541,13 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, ` ('UsageStats', 0, NULL, 'Share anonymous usage data on the Hea Koha community website.', 'YesNo'), ('UsageStatsCountry', '', NULL, 'The country where your library is located, to be shown on the Hea Koha community website', 'Choice'), ('UsageStatsID', '', NULL, 'This preference is part of Koha but it should not be deleted or updated manually.', 'Free'), +('UsageStatsGeolocation', '', NULL, 'Geolocation of the main library.', 'Free'), ('UsageStatsLastUpdateTime', '', NULL, 'This preference is part of Koha but it should not be deleted or updated manually.', 'Free'), +('UsageStatsLibrariesInfo', '', NULL, 'Share libraries information', 'YesNo'), ('UsageStatsLibraryName', '', NULL, 'The library name to be shown on Hea Koha community website', 'Free'), ('UsageStatsLibraryType', '', 'public|school|academic|research|private|societyAssociation|corporate|government|religiousOrg|subscription', 'The library type to be shown on the Hea Koha community website', 'Choice'), ('UsageStatsLibraryUrl', '', NULL, 'The library URL to be shown on Hea Koha community website', 'Free'), +('UsageStatsPublicID', '', NULL, 'Public ID for Hea website', 'Free'), ('UseAuthoritiesForTracings','1','0','Use authority record numbers for subject tracings instead of heading strings.','YesNo'), ('UseBranchTransferLimits','0','','If ON, Koha will will use the rules defined in branch_transfer_limits to decide if an item transfer should be allowed.','YesNo'), ('UseControlNumber','0','','If ON, record control number (w subfields) and control number (001) are used for linking of bibliographic records.','YesNo'), diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/about.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/about.tt index b2e73cfbc9..b3c43a3bd5 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/about.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/about.tt @@ -820,6 +820,9 @@
The TableDnD plug-in for jQuery by Denis Howlett is licensed under the MIT License.
+ +The Leaflet JavaScript library by Vladimir Agafonkinis licensed under the BSD License.