Bugzilla – Attachment 77172 Details for
Bug 19633
Use alphanumeric error codes in upload
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 19633: Use alphanumeric error codes in upload
Bug-19633-Use-alphanumeric-error-codes-in-upload.patch (text/plain), 7.78 KB, created by
Jonathan Druart
on 2018-07-20 16:38:57 UTC
(
hide
)
Description:
Bug 19633: Use alphanumeric error codes in upload
Filename:
MIME Type:
Creator:
Jonathan Druart
Created:
2018-07-20 16:38:57 UTC
Size:
7.78 KB
patch
obsolete
>From ce3d18e9f3f7e505af86a32c33fbffd966867dd3 Mon Sep 17 00:00:00 2001 >From: Marcel de Rooy <m.de.rooy@rijksmuseum.nl> >Date: Thu, 22 Feb 2018 11:52:14 +0100 >Subject: [PATCH] Bug 19633: Use alphanumeric error codes in upload > >The error codes 1 to 7 are used in Uploader.pm or tools/upload.pl. >It would be nice to use alphanumeric codes instead. >No behavior change expected. > >Test plan: >[1] Run t/db_dependent/Upload.t >[2] Verify that a regular upload with tools/upload.pl still works. >[3] Rename upload_path in your koha-conf.xml. Restart Plack, flush the cache > and try to upload to a category. Correct error message? >[4] Upload the same file twice to the same category. > Correct error message the second time? > >Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl> > >Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com> > >Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org> >--- > Koha/Uploader.pm | 14 ++++--- > .../intranet-tmpl/prog/en/modules/tools/upload.tt | 43 +++++++++++++++------- > t/db_dependent/Upload.t | 2 +- > tools/upload.pl | 10 +++-- > 4 files changed, 47 insertions(+), 22 deletions(-) > >diff --git a/Koha/Uploader.pm b/Koha/Uploader.pm >index e1b34c9e0e..dd60d51934 100644 >--- a/Koha/Uploader.pm >+++ b/Koha/Uploader.pm >@@ -58,8 +58,12 @@ Koha::Uploader - Facilitate file uploads (temporary and permanent) > > =cut > >-use constant KOHA_UPLOAD => 'koha_upload'; >+use constant KOHA_UPLOAD => 'koha_upload'; > use constant BYTES_DIGEST => 2048; >+use constant ERRCODE_1 => 'UPLERR_ALREADY_EXISTS'; >+use constant ERRCODE_2 => 'UPLERR_CANNOT_WRITE'; >+use constant ERRCODE_3 => 'UPLERR_NO_ROOT_DIR'; >+use constant ERRCODE_4 => 'UPLERR_NO_TEMP_DIR'; > > use Modern::Perl; > use CGI; # no utf8 flag, since it may interfere with binary uploads >@@ -220,9 +224,9 @@ sub _create_file { > $self->{files}->{$filename}->{errcode} ) { > #skip > } elsif( !$self->{temporary} && !$self->{rootdir} ) { >- $self->{files}->{$filename}->{errcode} = 3; #no rootdir >+ $self->{files}->{$filename}->{errcode} = ERRCODE_3; #no rootdir > } elsif( $self->{temporary} && !$self->{tmpdir} ) { >- $self->{files}->{$filename}->{errcode} = 4; #no tempdir >+ $self->{files}->{$filename}->{errcode} = ERRCODE_4; #no tempdir > } else { > my $dir = $self->_dir; > my $hashval = $self->{files}->{$filename}->{hash}; >@@ -235,7 +239,7 @@ sub _create_file { > hashvalue => $hashval, > uploadcategorycode => $self->{category}, > })->count ) { >- $self->{files}->{$filename}->{errcode} = 1; #already exists >+ $self->{files}->{$filename}->{errcode} = ERRCODE_1; #already exists > return; > } > >@@ -244,7 +248,7 @@ sub _create_file { > $fh->binmode; > $self->{files}->{$filename}->{fh}= $fh; > } else { >- $self->{files}->{$filename}->{errcode} = 2; #not writable >+ $self->{files}->{$filename}->{errcode} = ERRCODE_2; #not writable > } > } > return $fh; >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/upload.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/upload.tt >index a4e6147f6e..7972f0162b 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/upload.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/upload.tt >@@ -249,18 +249,6 @@ > [% MACRO jsinclude BLOCK %] > [% Asset.js("js/tools-menu.js") %] > [% INCLUDE 'datatables.inc' %] >- <script type="text/javascript"> >- var errMESSAGES = [ >- "Error 0: Not in use", >- _("This file already exists (in this category)."), >- _("File could not be created. Check permissions."), >- _("Your koha-conf.xml does not contain a valid upload_path."), >- _("No temporary directory found."), >- _("File could not be read."), >- _("File has been deleted."), >- _("File or upload record could not be deleted."), >- ]; >- </script> > [% Asset.js("js/file-upload.js") %] > <script type="text/javascript"> > function StartUpload() { >@@ -318,13 +306,42 @@ > var str = ''; > for( var file in err ) { > str= str + '<p>' + file + ': ' + >- errMESSAGES[ err[file].code ] + '</p>'; >+ errMESSAGES( err[file].code ) + '</p>'; > } > if( str ) { > $('#myalerts').html(str); > $('#myalerts').show(); > } > } >+ function errMESSAGES(code) { >+ var rv; >+ switch(code) { >+ case 'UPLERR_ALREADY_EXISTS': >+ rv = _("This file already exists (in this category)."); >+ break; >+ case 'UPLERR_CANNOT_WRITE': >+ rv = _("File could not be created. Check permissions."); >+ break; >+ case 'UPLERR_NO_ROOT_DIR': >+ rv = _("Your koha-conf.xml does not contain a valid upload_path."); >+ break; >+ case 'UPLERR_NO_TEMP_DIR': >+ rv = _("No temporary directory found."); >+ break; >+ case 'UPLERR_FILE_NOT_READ': >+ rv = _("File could not be read."); >+ break; >+ case 'UPL_FILE_DELETED': // An alert, no error >+ rv = _("File has been deleted."); >+ break; >+ case 'UPLERR_FILE_NOT_DELETED': >+ rv = _("File or upload record could not be deleted."); >+ break; >+ default: >+ rv = code; >+ } >+ return rv; >+ } > function CheckSearch() { > if( $("#term").val()=="" ) { > alert( _("Please enter a search term.") ); >diff --git a/t/db_dependent/Upload.t b/t/db_dependent/Upload.t >index 729bb86248..8b4f0ba7c4 100644 >--- a/t/db_dependent/Upload.t >+++ b/t/db_dependent/Upload.t >@@ -145,7 +145,7 @@ subtest 'Add same file in same category' => sub { > is( $upl->count, 0, 'Upload 4 failed as expected' ); > is( $upl->result, undef, 'Result is undefined' ); > my $e = $upl->err; >- is( $e->{file2}->{code}, 1, "Errcode 1 [already exists] reported" ); >+ is( $e->{file2}->{code}, Koha::Uploader::ERRCODE_1, "Errcode [already exists] reported" ); > }; > > subtest 'Test delete via UploadedFile as well as UploadedFiles' => sub { >diff --git a/tools/upload.pl b/tools/upload.pl >index 9b10b4226c..20820b8c47 100755 >--- a/tools/upload.pl >+++ b/tools/upload.pl >@@ -25,6 +25,10 @@ use C4::Auth; > use C4::Output; > use Koha::UploadedFiles; > >+use constant ERRCODE_5 => 'UPLERR_FILE_NOT_READ'; >+use constant ALRCODE_6 => 'UPL_FILE_DELETED'; # alert, no error >+use constant ERRCODE_7 => 'UPLERR_FILE_NOT_DELETED'; >+ > my $input = CGI::->new; > my $op = $input->param('op') // 'new'; > my $plugin = $input->param('plugin'); >@@ -87,9 +91,9 @@ if ( $op eq 'new' ) { > my $delete = $rec ? $rec->delete : undef; > #TODO Improve error handling > my $msg = $delete >- ? JSON::to_json({ $fn => { code => 6 }}) >+ ? JSON::to_json({ $fn => { code => ALRCODE_6 }}) > : $id >- ? JSON::to_json({ $fn || $id, { code => 7 }}) >+ ? JSON::to_json({ $fn || $id, { code => ERRCODE_7 }}) > : ''; > $template->param( > mode => 'deleted', >@@ -104,7 +108,7 @@ if ( $op eq 'new' ) { > if ( !$rec || !$fh ) { > $template->param( > mode => 'new', >- msg => JSON::to_json({ $id => { code => 5 }}), >+ msg => JSON::to_json({ $id => { code => ERRCODE_5 }}), > ); > output_html_with_http_headers $input, $cookie, $template->output; > } else { >-- >2.11.0
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 19633
:
72084
|
72919
|
74722
|
75856
| 77172 |
77173